В настоящее время я читаю « Лямбда-исчисление и комбинаторы » Хиндли и Селдина. Я не эксперт, но всегда интересовался лямбда-исчислением из-за участия в функциональном программировании (начиная с Lisp и SICP, а теперь с R и Haskell).
В « Binary лямбда - исчисления и комбинаторной логики» , Джон Тромп гласит:
CL можно рассматривать как подмножество лямбда-исчисления ... теории в значительной степени совпадают, становясь эквивалентными при наличии правила экстенсиональности.
При каких условиях можно использовать комбинаторную логику вместо лямбда-исчисления ?
Любые ссылки будут оценены.
Ответы:
Что отличает комбинаторную логику, это то, что она свободна от переменных. Это иногда полезно в метаматематике и философской логике, где статус переменных сложен.
Это также может быть полезно в реализациях, поскольку управление переменными может быть головной болью. См., Например, Хьюз, 1982, Супер-комбинаторы: новый метод реализации для аппликативных языков.
источник
Реферирование на комментарий Джона Тромп, я хочу заметить , что комбинаторная логика чувствует себя очень отличается от лямбда - исчисления. Так как ваш интерес связан с функциональным программированием, вы действительно не хотите много знать о комбинаторной логике.
Мой любимый урок по комбинаторной логике - в этих лекциях из Кембриджского университета.
Однако они представлены для объяснения реализации так называемых ленивых (или аппликативных) языков; как уже упоминалось в моем предыдущем комментарии, такие методы уже устарели.
источник