Le variabili sono un concetto presente in tutti i linguaggi di programmazione, ma il concetto non è facile da capire.

Gli argomenti modifica

Pensate di voler fare una procedura che disegna un quadrato; allora scrivereste:

to quadrato100
forward 100
right 90
forward 100
right 90
forward 100
right 90
forward 100
right 90
end

Ma questo farà solo quadrati di 100 passi. Facciamone uno che abbia come lato il doppio del primo:

to quadrato200
forward 200
right 90
forward 200
right 90
forward 200
right 90
forward 200
right 90
end

Capirete che è un po' scomodo scriversi tutte le procedure per ogni quadrato. Per rendere le procedure più flessibili, è possibile specificare degli argomenti, scrivendo una procedura quadrato generica, che utilizzerà i valori forniti al momento dell'esecuzione.

Allora la nostra procedura quadrato sarà:

to quadrato :lato
forward :lato
right 90
forward :lato
right 90
forward :lato
right 90
forward :lato
right 90
end

Se voglio disegnare un quadrato che abbia come lato 157 passi, è facile:

quadrato 157

In questo caso la variabile :lato prende il valore 157.

make e name modifica

Queste due procedure primitive (native del LOGO) hanno il compito opposto: assegnare un nome ad un valore, od assegnare un valore ad una variabile (che sono appunto due cose speculari).

La sintassi è:

make "variabile valore
name valore "variabile

La prima volta che si dichiara una variabile, non si usano i due punti ma le virgolette.

Per stampare a schermo il valore di una variabile:

print :variabile

Si può anche operare con le variabili:

make "var1 150
make "var2 60
make "var3 :var1+:var2
print :var3

Il risultato sarà 210.

Possiamo anche scrivere una procedura che esegue le somme:

to somma :op1 :op2
make "op3 :op1+:op2
print combine :op1 [+]
print combine :op2 [=]
print [-------]
print :op3
end

combine serve per congiungere più elementi.