Automate d'évaluation — lambda et application
Statut documentaire : reference — voir Maturité et preuves.
La grammaire fonctionnelle actuelle contient une forme lambda et un mécanisme d'application d'expressions.
Lambda comme valeur
Évaluer une définition lambda produit une valeur appelable associée à son environnement nécessaire.
lambda parameters body
-> valeur fonctionnelle / fermeture
Application
L'application est un protocole multi-phase :
évaluer la fonction
-> évaluer / lier les arguments
-> déterminer si l'application est complète
-> application partielle OU évaluation du corps
-> résultat
Le moteur dispose explicitement d'un protocole d'évaluation à plusieurs états pour l'application fonctionnelle, ce qui permet de différer l'évaluation du corps jusqu'au moment approprié.
Fermeture et environnement
Une lambda n'est pas seulement un pointeur vers un corps syntaxique. Sa valeur doit conserver suffisamment de contexte pour résoudre les dépendances nécessaires lors de l'application.
Currying et application partielle
Lorsque la forme fonctionnelle le permet, une application incomplète peut produire une nouvelle valeur fonctionnelle plutôt que déclencher immédiatement le corps final.
Cette capacité découle naturellement du protocole d'application à états.