Lua prend en charge les fonctions anonymes. Elles permettent notamment de former des fermertures (closures). Les fonctions anonymes sont utiles lorsque l’on souhaite définir une fonction sans avoir à la nommer.
|
|
La fonction intSeq renvoie une autre fonction que nous définissons anonymement dans le corps de intSeq. La fonction retournée se ferme sur la variable i pour former une fermeture. Nous appelons intSeq en attribuant le résultat (une fonction) à nextInt. Cette valeur de fonction capture sa propre valeur de i qui sera mise à jour chaque fois que nous appelons nextInt
Pour confirmer que l’état est unique à cette fonction particulière, regardez l’exemple suivant :
|
|