Sur Codewars.com, j'ai rencontré la tâche suivante:
Créez une fonction
add
qui ajoute des nombres ensemble lorsqu'elle est appelée successivement. Doncadd(1)
devrait revenir1
,add(1)(2)
devrait revenir1+2
, ...
Bien que je connaisse les bases de Python, je n'ai jamais rencontré une fonction qui puisse être appelée dans une telle succession, c'est-à-dire une fonction f(x)
qui peut être appelée comme f(x)(y)(z)...
. Jusqu'à présent, je ne sais même pas comment interpréter cette notation.
En tant que mathématicien, je soupçonne que f(x)(y)
c'est une fonction qui assigne à chaque x
fonction une g_{x}
puis retourneg_{x}(y)
et de même pour f(x)(y)(z)
.
Si cette interprétation était correcte, Python me permettrait de créer dynamiquement des fonctions qui me semblent très intéressantes. J'ai cherché sur le Web au cours de la dernière heure, mais je n'ai pas été en mesure de trouver une piste dans la bonne direction. Puisque je ne sais pas comment ce concept de programmation est appelé, cela n'est peut-être pas trop surprenant.
Comment appelez-vous ce concept et où puis-je en savoir plus?