Chcę użyć Clojure's Core.logic. Jednak chcę również zrozumieć, jak to działa. Czy gdzieś jest to zwięzłe wyjaśnienie? (Podobnie jak implementacja metacircular ewaluatora?)Zwięzłe wyjaśnienie Core.logic
Dzięki!
Chcę użyć Clojure's Core.logic. Jednak chcę również zrozumieć, jak to działa. Czy gdzieś jest to zwięzłe wyjaśnienie? (Podobnie jak implementacja metacircular ewaluatora?)Zwięzłe wyjaśnienie Core.logic
Dzięki!
core.logic to implementacja miniKanren - pierwotnie napisana i zaprojektowana w Schemacie przez Dana Friedmana, Williama Byrda, Olega Kiselyova i innych. Jest to próba osadzenia programowania relacyjnego w stylu Prologu w Lisp.
Jeśli chcesz zrozumieć, jak to działa, musisz przeczytać pierwsze trzy rozdziały rozprawy Williama Byrda: https://scholarworks.iu.edu/dspace/bitstream/handle/2022/8777/Byrd_indiana_0093A_10344.pdf?sequence=1
uzasadnionej Schemer obejmuje również unifikator w szczegółach. Jednak o wiele bardziej subtelna część bramkowa miniKanren nie jest objęta kompleksowym leczeniem - musisz przyjrzeć się rozprawie Byrda.
Nawet wtedy, tak jak w przypadku tłumaczy meta-kołowych - nie można uzyskać wielu wglądów bez próby samodzielnego wdrożenia systemu w różnych językach programowania.
Dodałbym: https://github.com/clojure/core.logic/wiki/A-Core.logic-Primer oraz porady dotyczące programowania w Prologu (więcej przykładów, podobne pomysły, choć mniej uniwersalne niż miniKanren). – Isaac
Twój link do pracy Byrda jest zepsuty. :-( –
link do pracy wydaje się znów działać. – dnolen
Można również zobaczyć David's talk on core.logic z Strange Loop 2012.
A dla bardzo lekkiej wprowadzeniem do tematu zobacz także: sokuza-kanren
Dlaczego to zamknięte OT? Do OP, spójrz na https://github.com/clojure/core.logic/wiki/A-Core.logic-Primer. – drewr
brak pomysłu. głosowali na ponowne otwarcie. –
To pytanie dobrze pasuje do tego tagu. –