21

Quiero utilizar Core.logic de Clojure. Sin embargo, también quiero entender cómo funciona. ¿Hay alguna explicación concisa de eso en alguna parte? (Al igual que la implementación de un evaluador metacircular?)explicación concisa de Core.logic

Gracias!

+0

¿Por qué era tan cerrado OT? Para el OP, eche un vistazo a https://github.com/clojure/core.logic/wiki/A-Core.logic-Primer. – drewr

+0

ni idea. han votado para reabrir –

+0

Esta pregunta es muy adecuada para esta etiqueta. –

Respuesta

19

core.logic es una implementación de miniKanren - originalmente escrito y diseñado en el Esquema de Dan Friedman, William Byrd, Oleg Kiselyov y otros. Es un intento de integrar la programación relacional al estilo Prolog dentro de Lisp.

Si se quiere entender cómo funciona tendrá que leer los tres primeros 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 Razonada Schemer también cubre el unificador en detalle. Sin embargo, la parte de la meta mucho más sutil de miniKanren no recibe un tratamiento integral; para eso tendrá que ver la disertación de Byrd.

Incluso entonces, al igual que con los intérpretes meta-circular - muchos puntos de vista no puede ser adquirida sin tratar de poner en práctica el sistema por sí mismo en una variedad de lenguajes de programación.

+3

Yo añadiría: https://github.com/clojure/core.logic/wiki/A-Core.logic-Primer así como el asesoramiento a mirar en la programación en Prolog (más ejemplos, ideas similares, aunque menos versátil que miniKanren). – Isaac

+0

Su enlace a la tesis de Byrd está roto. :-( –

+0

el enlace de la tesis parece estar funcionando de nuevo. – dnolen