Lua/Funzioni
< Lua
Le funzioni Modifica
Per definire una funzione, si scrive
function funzione() ... end
Esempio:
function fattoriale(n) if (n == 0) then return 1 end return n*fattoriale(n - 1) end print(fattoriale(4)) --scrive a video il numero 24
Valori di prima classe Modifica
La seguente istruzione:
fatt = fattoriale
crea una variabile fatt
e le "assegna" la funzione definita sopra. Ora, fatt
può essere usato al posto di fattoriale
:
print fatt(4) --scrive a video il numero 24 calcolo = fatt --fa lo stesso con un'altra variabile
In gergo, si dice che le funzioni sono valori di prima classe (first-class values), perché possono essere manipolati esattamente come i valori numerici e le stringhe.
Funzioni anonime Modifica
Una funzione può non avere un nome.
Closures Modifica
Aspetti dell'implementazione Modifica
Tecnicamente, Lua trasforma ogni dichiarazione del tipo
function f() ... end
nel formato
f = function() ... end