Lisp/Variabili nel LISP

Indice del libro

Le variabili in Lisp non sono tipizzate, cioè non assumono la tipologia (int, char, stringa, float, ecc...) sino a quando non vengono valutate (eval ...) dalla engine Lisp.

Le variabili quindi assumono un significato e un tipo solo quando il processo di EVAL le considera per l'esecuzione di una funzione.

Tutti i linguaggi creano le variabili e allocano lo spazio di memoria delle medesime assegnando ad esse una dimensione in funzione del tipo di variabile:

 int a, b,c;
 float f1, Tarc, ...;

Nel Lisp le variabili sono memorizzate nella forma di liste e verranno usate per la tipologia richiesta solo quando una funzione ne prende in esame il contenuto:

 > (setq val1 10)
 10
 > (setq val2 167)
 167
 > (+ val1 val2 )
 177
 > (setq val2 178)
 178
 > (+ val1 val2)
 188
 > (setq val2 "la casa al mare")  <--- cambio di tipo della variabile
 "la casa al mare"
 > (+ val1 val2 )     <------- errore si tenta la somma di tipi diversi