Là où on commence à s'amuser, c'est lorsqu'une fonction peut prendre en argument une fonction, et retourner une autre fonction.
Je ne connais pas la syntaxe Ada mais en Python, ça donnerait:
def compose(f, g):
def h(v):
return g(f(v))
return h
Là, on est vraiment dans la programmation fonctionnelle déjà un peu plus avancée. Si tu rajoutes à ça la mémorisation de l'environnement de la fonction, tu obtiens les fameuses closures :
def call_and_add(f,delta):
def h(v):
return f(v)+delta
return h
Il parait que c'est super pratique et les développeurs ruby en sont des grands fans.
J'imagine mal faire ça avec des pointeurs de fonction mais c'est sûrement possible avec beaucoup plus de lourdeur.
[^] # Re: Vive le fonctionnel
Posté par Philippe F (site web personnel) . En réponse à la dépêche Publication de la nouvelle norme Ada 2012. Évalué à 4.
Là où on commence à s'amuser, c'est lorsqu'une fonction peut prendre en argument une fonction, et retourner une autre fonction.
Je ne connais pas la syntaxe Ada mais en Python, ça donnerait:
Là, on est vraiment dans la programmation fonctionnelle déjà un peu plus avancée. Si tu rajoutes à ça la mémorisation de l'environnement de la fonction, tu obtiens les fameuses closures :
Il parait que c'est super pratique et les développeurs ruby en sont des grands fans.
J'imagine mal faire ça avec des pointeurs de fonction mais c'est sûrement possible avec beaucoup plus de lourdeur.