Ein paar Worte vorabHome   Letzte MeldungenNews   Index der Kapitel und der besprochenen FunktionenIndex   Wer ich bin, warum ich diese Seiten mache, KontaktImpressum   Ich freue mich über jeden Eintrag im Gästebuch!Gästebuch   Einige Links zu anderen AutoLisp-SeitenLinks   Copyrights und DisclaimerRechts
Hier können die kompletten Seiten als ZIP-File heruntergeladen werden!

Funktionen für komfortables Arbeiten mit Zeichenketten String-Tango
Noch mehr Funktionen für komfortableres Arbeiten mit Zeichenketten Kettenhunde
strtok zerlegt Zeichenketten anhand eines Trennzeichens Tock-Tock
Arbeiten mit Datum und Zeit in AutoLisp Zeitlos...
Dotted pairs - wie man den Programmabbruch verhindert Gepunktet?
Neue Funktionen für die Listenbearbeitung Strukturtapete
Weitere neue Funktionen für die Listenbearbeitung Listen to me!
Lambda expressions - dasSalz in der Suppe Lambada
Lambda expressions anhand eines Praxisbeispiels Unter der Erde
Where und whereever erleichtern den Umgang mit Listen Quo vadis?
Rekursion - Funktionen, die sich selbst aufrufen Katzenschwanz
Ein äusserst wichtiger Prototyp für Funktionen Nix passiert
Wo das lineare mapcar am Ende ist Tiefer rein!
Über Effekte und Neben(Seiten-)Effekte von Funktionen Seitensprünge
Die Namensräume (Sichtbarkeit) von Variablen Raumwunder
Let dient zur Schaffung kleinerer Namensräume Lass mal...
Sukzessive Verarbeitung von Listenresten mit mapcdr Der Bruder
Was in AutoLisp einfach nicht machbar ist (Teil I) Beschränkt
Was in AutoLisp einfach nicht machbar ist (Teil II) Limited Edition
Nicht mit Effekten arbeiten, sondern direkter Daten-Änderung Destruktiv
Sequenzielles vs. paralleles Abarbeiten von Argumenten Parallelwelten
Über den Umgang mit Funktionsschablonen Erwachet!
Ein Praxiskapitel über Auswahlsätze, Attribute, wcmatch und mehr Durch die Brust
Die Farben des AutoCAD Color Index und ihre RGB-Werte Alles so schön
Hier laufen die Fäden zusammen: Viele Konzepte vereint Lapsus Lispuli
Ein Spiel als Beispiel für lernfähige Funktionen Zug um Zug
Errorhandling in AutoLisp - Teil 1 Alles valsch!
Errorhandling in AutoLisp - Teil 2 Und foll Feler!


Zum Einsteiger-Tutorial

Zu den ActiveX-Seiten

Meine Private HP mit Fotos, Gedichten, Musik und Postkartenversand

Mein Online-Lexikon der Fotografie

Mein völlig abgedrehtes Reisebüro










Wie man sich über das Nichtvorhandensein von optionalen Argumenten usw. in AutoLisp hinweghelfen kann, war im Kapitel Grenzen zu lesen, hier also die Fortsetzung zu den Themen 'Makros' und 'Backquoting'.

Was unterscheidet die Funktionen (set ...) und (setq ...) voneinander? Richtig, bei (setq ...) wird das erste Argument gequotet, also nicht evaluiert. Wir können also jederzeit statt (setq ...) auch (set ' ...) verwenden. setq ist nichts weiter als ein Makro, das intern
set aufruft, aber die Evaluation des ersten Arguments verhindert. Darüber hinaus kann man aber setq auch noch mit einer variablen Anzahl von Argumenten aufrufen, um mehrere Zuweisungen gleichzeitig vorzunehmen.

Der AutoLisp-Programmierer hat keine Möglichkeit, solche Makros selbst zu schreiben. Der Interpreter evaluiert bei selbstdefinierten Funktionen immer alle Argumente. Selbst über die C/C++ - Schnittstelle ist da absolut nichts zu machen. Mit deren Hilfe kann man zwar neue AutoLisp-Funktionen mit variabler Argumentenzahl schreiben, aber trotzdem werden die Argumente vorher evaluiert!

Wir müssen also damit leben, dass hier nichts zu machen ist. Eine selbstgeschriebene neue Schleifensteuerung wird also beim Aufruf immer so aussehen:
(ss-foreach 'entity (ssget)
 '( ..... )
)
                  
Anders als beim originalen foreach muss das Symbol entity hier also quotiert werden! Dass auch der body dieser Schleife gequotet übergeben werden muss, liegt daran, was im Kapitel 'Grenzen' besprochen wurde, nämlich daran, dass die Anzahl der Funktionsargumente festgeschrieben ist.

Nun zum letzten Thema: Auch Backquoting ist in AutoLisp nicht möglich. Darunter versteht man die Möglichkeit, innerhalb von quotierten Listen bestimmte Stellen von der Quotierung auszunehmen, um dort Variablenwerte einzufügen. In AutoLisp muss man dann also die Liste aus ihren Einzelbestandteilen zusammensetzen, was mitunter ein wenig mühsam wird. Da es keinen direkten Ersatz für das Backquoting gibt, möchte ich hier auch auf Beispiele verzichten.

Auch wenn durch das Fehlen von Markros die Häufigkeit des Quote-Zeichens steigt und durch das Fehlen des Backquotings evtl. ein paar Zeilen mehr Code anfallen: Alle diese kleinen Mängel sind nicht essentiell! In Verbindung mit der Funktion (mapin ... ) werden wir auch brauchbare Wege kennenlernen, das Backquoting zu ersetzen.