LISP - Grundlegende Syntax
Grundbausteine in LISP
LISP-Programme bestehen aus drei Grundbausteinen:
atom
list
string
Ein atomist eine Zahl oder Zeichenfolge zusammenhängender Zeichen. Es enthält Zahlen und Sonderzeichen.
Es folgen Beispiele für einige gültige Atome -
hello-from-tutorials-point
name
123008907
*hello*
Block#221
abc123
EIN list ist eine Folge von Atomen und / oder anderen Listen in Klammern.
Es folgen Beispiele für einige gültige Listen -
( i am a list)
(a ( a b c) d e fgh)
(father tom ( susan bill joe))
(sun mon tue wed thur fri sat)
( )
EIN string ist eine Gruppe von Zeichen in doppelten Anführungszeichen.
Es folgen Beispiele für einige gültige Zeichenfolgen -
" I am a string"
"a ba c d efg #$%^&!"
"Please enter the following details :"
"Hello from 'Tutorials Point'! "
Kommentare hinzufügen
Das Semikolonsymbol (;) dient zur Angabe einer Kommentarzeile.
Zum Beispiel,
(write-line "Hello World") ; greet the world
; tell them your whereabouts
(write-line "I am at 'Tutorials Point'! Learning LISP")
Wenn Sie auf die Schaltfläche Ausführen klicken oder Strg + E eingeben, führt LISP diese sofort aus und das zurückgegebene Ergebnis lautet:
Hello World
I am at 'Tutorials Point'! Learning LISP
Einige bemerkenswerte Punkte, bevor Sie mit dem nächsten fortfahren
Im Folgenden sind einige wichtige Punkte aufgeführt, die zu beachten sind:
Die grundlegenden numerischen Operationen in LISP sind +, -, * und /
LISP repräsentiert einen Funktionsaufruf f (x) als (fx), zum Beispiel wird cos (45) als cos 45 geschrieben
LISP-Ausdrücke unterscheiden nicht zwischen Groß- und Kleinschreibung, cos 45 oder COS 45 sind gleich.
LISP versucht, alles zu bewerten, einschließlich der Argumente einer Funktion. Nur drei Arten von Elementen sind Konstanten und geben immer ihren eigenen Wert zurück
Numbers
Der Buchstabe t, das steht für logisch wahr.
Der Wert nil, das steht für logisch falsch sowie eine leere Liste.
Wenig mehr über LISP-Formulare
Im vorherigen Kapitel haben wir erwähnt, dass der Evaluierungsprozess des LISP-Codes die folgenden Schritte umfasst.
Der Leser übersetzt die Zeichenfolgen in LISP-Objekte oder s-expressions.
Der Evaluator definiert die Syntax von Lisp formsdie aus s-Ausdrücken aufgebaut sind. Diese zweite Bewertungsebene definiert eine Syntax, die bestimmt, welche S-Ausdrücke LISP-Formen sind.
Nun könnte ein LISP-Formular sein.
Ein Atom
Eine leere oder keine Liste
Jede Liste, deren erstes Element ein Symbol enthält
Der Evaluator arbeitet als Funktion, die ein gültiges LISP-Formular als Argument verwendet und einen Wert zurückgibt. Dies ist der Grund, warum wir die setzenLISP expression in parenthesis, weil wir den gesamten Ausdruck / das gesamte Formular als Argumente an den Evaluator senden.
Namenskonventionen in LISP
Name oder Symbole können aus einer beliebigen Anzahl von anderen alphanumerischen Zeichen als Leerzeichen, offenen und schließenden Klammern, doppelten und einfachen Anführungszeichen, Backslash, Komma, Doppelpunkt, Semikolon und vertikalem Balken bestehen. Um diese Zeichen in einem Namen zu verwenden, müssen Sie das Escape-Zeichen (\) verwenden.
Ein Name kann Ziffern haben, aber nicht vollständig aus Ziffern bestehen, da er dann als Zahl gelesen wird. Ebenso kann ein Name Punkte haben, aber nicht vollständig aus Punkten bestehen.
Verwendung eines einfachen Anführungszeichens
LISP wertet alles aus, einschließlich der Funktionsargumente und Listenmitglieder.
Manchmal müssen wir Atome oder Listen wörtlich nehmen und wollen nicht, dass sie ausgewertet oder als Funktionsaufrufe behandelt werden.
Dazu müssen wir dem Atom oder der Liste ein einfaches Anführungszeichen voranstellen.
Das folgende Beispiel zeigt dies.
Erstellen Sie eine Datei mit dem Namen main.lisp und geben Sie den folgenden Code ein.
(write-line "single quote used, it inhibits evaluation")
(write '(* 2 3))
(write-line " ")
(write-line "single quote not used, so expression evaluated")
(write (* 2 3))
Wenn Sie auf die Schaltfläche Ausführen klicken oder Strg + E eingeben, führt LISP diese sofort aus und das zurückgegebene Ergebnis lautet:
single quote used, it inhibits evaluation
(* 2 3)
single quote not used, so expression evaluated
6