Desidero utilizzare Core.logic di Clojure. Tuttavia, voglio anche capire come funziona. C'è una spiegazione concisa da qualche parte? (Come implementare un valutatore metacircolare?)Spiegazione concisa di Core.logic
Grazie!
Desidero utilizzare Core.logic di Clojure. Tuttavia, voglio anche capire come funziona. C'è una spiegazione concisa da qualche parte? (Come implementare un valutatore metacircolare?)Spiegazione concisa di Core.logic
Grazie!
core.logic è un'implementazione di miniKanren - originariamente scritto e progettato in Scheme da Dan Friedman, William Byrd, Oleg Kiselyov e altri. È un tentativo di incorporare la programmazione relazionale in stile Prolog all'interno di Lisp.
Se volete capire come funziona è necessario leggere i primi tre capitoli della tesi di William Byrd: https://scholarworks.iu.edu/dspace/bitstream/handle/2022/8777/Byrd_indiana_0093A_10344.pdf?sequence=1
Il motivato Schemer copre anche l'unificatore in dettaglio. Tuttavia, la porzione molto più sottile dell'obiettivo di miniKanren non viene fornita un trattamento completo: per questo dovrai consultare la tesi di Byrd.
Anche in questo caso, come per gli interpreti meta-circolari, non è possibile ottenere molti approfondimenti senza tentare di implementare il sistema autonomamente in una varietà di linguaggi di programmazione.
Aggiungo: https://github.com/clojure/core.logic/wiki/A-Core.logic-Primer così come i consigli per esaminare la programmazione in Prolog (più esempi, idee simili, anche se meno versatili di miniKanren). – Isaac
Il tuo link alla tesi di Byrd è rotto. :-( –
il collegamento della tesi sembra funzionare di nuovo. – dnolen
Inoltre potrai vedere David's talk on core.logic dal Strano Anello 2012.
E per l'introduzione molto leggero al tema vedi anche: sokuza-kanren
Perché questo chiuso come OT? Per l'OP, dare un'occhiata a https://github.com/clojure/core.logic/wiki/A-Core.logic-Primer. – drewr
nessuna idea. hanno votato per riaprire. –
Questa domanda è adatta per questo tag. –