LISP - Syntaxe de base

Blocs de construction de base dans LISP

Les programmes LISP sont constitués de trois éléments de base -

  • atom

  • list

  • string

Un atomest un nombre ou une chaîne de caractères contigus. Il comprend des chiffres et des caractères spéciaux.

Voici des exemples d'atomes valides -

hello-from-tutorials-point
name
123008907
*hello*
Block#221
abc123

UNE list est une séquence d'atomes et / ou d'autres listes entre parenthèses.

Voici quelques exemples de listes valides -

( i am a list)
(a ( a b c) d e fgh)
(father tom ( susan bill joe))
(sun mon tue wed thur fri sat)
( )

UNE string est un groupe de caractères entre guillemets doubles.

Voici des exemples de chaînes valides -

" I am a string"
"a ba c d efg #$%^&!"
"Please enter the following details :"
"Hello from 'Tutorials Point'! "

Ajout de commentaires

Le symbole point-virgule (;) est utilisé pour indiquer une ligne de commentaire.

Par exemple,

(write-line "Hello World") ; greet the world

; tell them your whereabouts

(write-line "I am at 'Tutorials Point'! Learning LISP")

Lorsque vous cliquez sur le bouton Exécuter ou tapez Ctrl + E, LISP l'exécute immédiatement et le résultat renvoyé est -

Hello World

I am at 'Tutorials Point'! Learning LISP

Quelques points notables avant de passer au suivant

Voici quelques-uns des points importants à noter -

  • Les opérations numériques de base dans LISP sont +, -, * et /

  • LISP représente un appel de fonction f (x) comme (fx), par exemple cos (45) s'écrit cos 45

  • Les expressions LISP sont insensibles à la casse, cos 45 ou COS 45 sont identiques.

  • LISP essaie de tout évaluer, y compris les arguments d'une fonction. Seuls trois types d'éléments sont des constantes et renvoient toujours leur propre valeur

    • Numbers

    • La lettre t, cela signifie logique vrai.

    • La valeur nil, cela signifie un faux logique, ainsi qu'une liste vide.

Un peu plus sur les formulaires LISP

Dans le chapitre précédent, nous avons mentionné que le processus d'évaluation du code LISP suit les étapes suivantes.

  • Le lecteur traduit les chaînes de caractères en objets LISP ou s-expressions.

  • L'évaluateur définit la syntaxe de Lisp formsqui sont construits à partir d'expressions s. Ce deuxième niveau d'évaluation définit une syntaxe qui détermine quelles expressions s sont des formes LISP.

Maintenant, un formulaire LISP pourrait être.

  • Un atome

  • Une liste vide ou non

  • Toute liste qui a un symbole comme premier élément

L'évaluateur fonctionne comme une fonction qui prend une forme LISP valide comme argument et renvoie une valeur. C'est la raison pour laquelle nous mettons leLISP expression in parenthesis, parce que nous envoyons toute l'expression / le formulaire à l'évaluateur en tant qu'arguments.

Conventions de dénomination dans LISP

Le nom ou les symboles peuvent comprendre n'importe quel nombre de caractères alphanumériques autres que les espaces, les parenthèses ouvertes et fermantes, les guillemets doubles et simples, la barre oblique inverse, la virgule, les deux points, le point-virgule et la barre verticale. Pour utiliser ces caractères dans un nom, vous devez utiliser le caractère d'échappement (\).

Un nom peut avoir des chiffres mais pas entièrement constitué de chiffres, car il serait alors lu comme un nombre. De même, un nom peut avoir des points, mais ne peut pas être entièrement composé de points.

Utilisation du guillemet simple

LISP évalue tout, y compris les arguments de la fonction et les membres de la liste.

Parfois, nous devons prendre des atomes ou des listes au pied de la lettre et ne pas vouloir les évaluer ou les traiter comme des appels de fonction.

Pour ce faire, nous devons faire précéder l'atome ou la liste d'un guillemet simple.

L'exemple suivant illustre cela.

Créez un fichier nommé main.lisp et tapez le code suivant dedans.

(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))

Lorsque vous cliquez sur le bouton Exécuter ou tapez Ctrl + E, LISP l'exécute immédiatement et le résultat renvoyé est -

single quote used, it inhibits evaluation
(* 2 3) 
single quote not used, so expression evaluated
6