1- Une fonction est une expression exécutable, dont la valeur est de type fonction.
2- On lui envoie des paramètres, elle reçoit des arguments et retourne des valeurs.
3- function NomFonction(arg1, arg2) .. corps de la fonction .. end
4- NomFonction(arg1, arg2, ...) Les 3 petits points attendent des arguments non encore définis.
5- Une fonction anonyme est une fonction qui n'a pas de nom:
6- local x, y, _, _ = NomFonction(a, b)
NomFonction attend en retour les valeurs x et y, mais n'a pas besoin des 2 dernières ( _ )
7- Une closure est une fonction qui capture les références de variables libres dans l'environnement lexical.
8- Quand une fonction est incluse dans une autre fonction, elle a pleinement accès aux variables locales de la fonction englobante, cette fonctionnalité est appelée portée lexicale.
9- Définir d'abord la variable, puis lui affecter la fonction:
10- Un appel récursif est similaire au goto du basic, un renvoi qui ne nécessite pas de retour automatique.