J'ai lu quelques articles sur les fermetures et les curry mais j'ai l'impression de ne pas avoir trouvé la réponse. Alors, quelles sont les différences et peut-être les similitudes des fermetures et currying? Merci pour l'aide :)Quelles sont les différences et les similitudes possibles des fermetures et des curry?
Répondre
Curriculum est vraiment un concept mathématique d'abord et avant tout. Il est juste l'observation que, pour toute n fonction -aire f: S × ... S n → R, vous pouvez définir une nouvelle fonction FPrime (juste trouvé un bug de démarques!) Avec n-1 paramètres où ce premier paramètre est remplacé par une constante. Donc, si vous avez une fonction add(a,b)
, vous pouvez définir une nouvelle fonction add1(b)
comme
add1(b) ::= add(1, b)
... lire « :: = » comme « est défini comme. »
Une fermeture est plus un concept de programmation. (Bien sûr, tout en programmation est également un concept mathématique, mais les fermetures sont devenues intéressantes à cause de la programmation.) Lorsque vous construisez une fermeture, vous liez une ou plusieurs variables; vous créez un morceau de code auquel certaines variables sont liées.
La relation est que vous pouvez utiliser une fermeture afin de mettre en œuvre taitement: vous pourriez construire votre fonction add1
ci-dessus en faisant une fermeture dans laquelle ce premier paramètre est lié à 1.
Ce que vous avez décrit est l'évaluation partielle plutôt que de courir. Relatif, mais pas exactement le même. –