Lisp/Variabili nel LISP
< Lisp
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