Actualmente estoy leyendo " Cálculo Lambda y Combinadores " de Hindley y Seldin. No soy un experto, pero siempre me ha interesado el cálculo lambda debido a su participación en la programación funcional (comenzando con Lisp y SICP, y ahora con R y Haskell).
En " Cálculo binario lambda y lógica combinatoria" , John Tromp afirma:
CL puede verse como un subconjunto de cálculo lambda ... las teorías son en gran medida las mismas, llegando a ser equivalentes en presencia de la regla de la extensionalidad.
¿Bajo qué condiciones se usaría la lógica combinatoria en lugar del cálculo lambda ?
Cualquier referencia sería apreciada.
Respuestas:
Lo que distingue la lógica combinatoria es que es libre de variables. Esto a veces es útil en metamatemáticas y lógica filosófica, donde el estado de las variables es complicado.
También puede ser útil en implementaciones, ya que administrar variables puede ser un dolor de cabeza. Cf., por ejemplo, Hughes, 1982, Supercombinadores: un nuevo método de implementación para lenguajes aplicativos
fuente
En referencia al comentario de John Tromp, quiero comentar que la lógica combinatoria se siente muy diferente del cálculo lambda. Dado que su interés proviene de la programación funcional, realmente no desea saber mucho sobre lógica combinatoria.
Mi tutorial favorito sobre lógica combinatoria se encuentra en estas notas de la Universidad de Cambridge.
Sin embargo, se presentan para explicar la implementación de los llamados lenguajes perezosos (o aplicativos); Como se mencionó en mi comentario anterior, tales técnicas ahora están desactualizadas.
fuente