Je dois définir une fonction 'Compose' qui prend une liste 'L' qui est une liste de fonctions. Lorsque je spécifie un paramètre qui conviendra à toutes les fonctions de la liste, la dernière fonction s'évalue elle-même en utilisant ce paramètre. Le résultat est ensuite transmis à l'avant-dernière fonction et ainsi de suite jusqu'à ce que nous arrivions au premier élément (fonction) de la liste et que nous obtenions le résultat final.
Par exemple
Compose ( ( fn N -> N + 1 ) ^ ( fn N -> 2 * N ) ^ # ) 3 .
donnez la réponse 7.
Je dois écrire cela dans un langage de programmation fonctionnel appelé SAL (simple applicative language) conçu par un professeur de mon université (d'où la syntaxe bizarre ci-dessus ( ^ sépare les éléments de la liste et # marque la fin de la liste)).
Si vous pouviez écrire une solution en pseudo-code, en gardant à l'esprit que je ne peux pas utiliser de boucles, de variables, etc. Apparemment, la solution est une réponse en une ligne. J'imagine que cela implique une récursion (99% de nos fonctions de tâches le font !).
De plus, je ne comprends pas Haskell (il va falloir que j'apprenne !), alors un code succinct ou même un anglais simple serait le bienvenu. -
Merci beaucoup.