Il ne s'agit pas vraiment de composition de fonction mais d'adopter un style pointless, c'est un peu plus fort.
Franchement, cela rajoute quoi comme sémantique ? C'est exactement la même chose.
Là oui, mais pour cet exemple :
fx=letg=map(+1)xingf'=letg=map(+1)ing
Certes, la sémantique est la même concernant les données, mais pas l'implémentation. La première implémentation f est bien plus lente que la seconde f'. Dans f le compilateur voit que la valeur de g dépend de x, et donc va créer la fermeture à l’exécution (à chaque appel). Dans f', on donne la "vrai" définition de f', c'est "la fonction qui prend une liste d'entiers et retourne la liste où chaque entier est incrémenté". Un compilateur malin va pouvoir "inliner" le (+1) dans le map et compiler du code optimal (dans ce cas simple).
[^] # Re: euh?!
Posté par Zylabon . En réponse au journal Retour d'expérience avec le langage J. Évalué à 5.
Il ne s'agit pas vraiment de composition de fonction mais d'adopter un style pointless, c'est un peu plus fort.
Là oui, mais pour cet exemple :
Certes, la sémantique est la même concernant les données, mais pas l'implémentation. La première implémentation
fest bien plus lente que la secondef'. Dansfle compilateur voit que la valeur de g dépend de x, et donc va créer la fermeture à l’exécution (à chaque appel). Dansf', on donne la "vrai" définition def', c'est "la fonction qui prend une liste d'entiers et retourne la liste où chaque entier est incrémenté". Un compilateur malin va pouvoir "inliner" le(+1)dans lemapet compiler du code optimal (dans ce cas simple).Please do not feed the trolls