clojure - Explicación concisa de Core.logic
scheme logic-programming (2)
Quiero usar Core.logic de Clojure. Sin embargo, también quiero entender cómo funciona. ¿Hay alguna explicación concisa de esto en alguna parte? (¿Como implementar un evaluador metacircular?)
¡Gracias!
También puede ver la charla de David en core.logic de Strange Loop 2012.
Y para una introducción muy ligera al tema, vea también: sokuza-kanren
core.logic es una implementación de miniKanren, originalmente escrita y diseñada en un esquema por Dan Friedman, William Byrd, Oleg Kiselyov y otros. Es un intento de incrustar la programación relacional de estilo Prolog dentro de Lisp.
Si desea comprender cómo funciona, deberá leer los primeros tres capítulos de la disertación de William Byrd: https://scholarworks.iu.edu/dspace/bitstream/handle/2022/8777/Byrd_indiana_0093A_10344.pdf?sequence=1
El maquinador razonado también cubre al unificador en detalle. Sin embargo, la porción del objetivo mucho más sutil de miniKanren no recibe un tratamiento integral, por lo que deberá consultar la disertación de Byrd.
Incluso entonces, al igual que con los intérpretes meta-circulares, no se pueden obtener muchos conocimientos sin intentar implementar el sistema usted mismo en una variedad de lenguajes de programación.