Je lis actuellement " Lambda-Calculus and Combinators " par Hindley et Seldin. Je ne suis pas un expert, mais je me suis toujours intéressé au calcul lambda en raison de son implication dans la programmation fonctionnelle (à commencer par Lisp et SICP, et maintenant avec R et Haskell).
Dans " Calcul binaire lambda et logique combinatoire" , John Tromp déclare:
La CL peut être considérée comme un sous-ensemble du calcul lambda ... les théories sont largement les mêmes, devenant équivalentes en présence de la règle de l'extensionnalité.
Dans quelles conditions utiliserait-on une logique combinatoire au lieu du lambda calcul ?
Toutes les références seraient appréciées.
Réponses:
Ce qui distingue la logique combinatoire, c'est qu'elle est libre de variables. Ceci est parfois utile en métamathématique et en logique philosophique, où le statut des variables est délicat.
Il peut également être utile dans les implémentations, car la gestion des variables peut être un casse-tête. Cf., par exemple, Hughes, 1982, Super-combinators: A new implementation method for applicative languages
la source
En me référant au commentaire de John Tromp, je veux remarquer que la logique combinatoire est très différente du calcul lambda. Puisque votre intérêt découle de la programmation fonctionnelle, vous ne voulez vraiment pas en savoir beaucoup sur la logique combinatoire.
Mon tutoriel préféré sur la logique combinatoire se trouve dans ces notes de cours de l'Université de Cambridge.
Cependant, ils sont introduits pour expliquer la mise en œuvre de langages dits paresseux (ou applicatifs); comme mentionné dans mon commentaire précédent, ces techniques sont désormais obsolètes.
la source