4 ms·
miniKanren is also a "full-blown" logic system. Kanren is mostly about optimizations. From what I've seen these can be applied to miniKanren implementations. T
by swannodette 15y ago
miniKanren is also a "full-blown" logic system. Kanren is mostly about optimizations. From what I've seen these can be applied to miniKanren implementations.
That's cool that you found minilop! It looks like that was an early attempt to whittle down Kanren to its essence which became the miniKanren used in The Reasoned Schemer.
2) is a version of miniKanren not much different from the one used in Byrd's dissertation.
cKanren is not really a "different" version of miniKanren. It retains most of the miniKanren core and adds constraint logic programming. From what I can tell, you can consider this the new miniKanren.
Great research by the way, it's awesome to see this kind of thing on HN.
- keithflower 15y agoMany thanks for the info. I'll have to delve into cKanren more - I kind of glossed over it. For anyone else interested, it looks like Claire Alvis is leading development of cKanren. Here's a background paper and a link to the source on github: http://scheme2011.ucombinator.org/papers/Alvis2011.pdf http://scheme2011.ucombinator.org/papers/Alvis2011.pdf https://github.com/calvis/cKanren https://github.com/calvis/cKanren And here's a short example and discussion of use of cKanren by (I think) one of the core.logic creators: http://dosync.posterous.com/another-taste-of-ckanren http://dosync.posterous.com/another-taste-of-ckanren http://groups.google.com/group/clojure/browse_thread/thread/f6336b6e348ed220 http://groups.google.com/group/clojure/browse_thread/thread/... Also, the Friedman group maintains some other source here: https://github.com/iucs/relational-research https://github.com/iucs/relational-research which includes...wait for it...babyMiniKanren (babymk)!
- swannodette 15y agoThe dosync.posterous.com link is me ;)
- keithflower 15y agoHeh...excellent, David! Thanks for the great work - I've read several pieces you've done on Kanren stuff (and read some of your past logic programming comments here), and I've learned a lot. EDIT: You supplemented Clojure's implementation of miniKanren (core.logic) with great macros like defrel, facts, extend-rel, and a lot of other stuff. Those are the kinds of things that seemed a bit more convenient to me in Kanren (the optimized Scheme version), maybe because they seem more "Prolog-like" to me, especially extend-rel. I need to go back and look at RS miniKanren again to see how easy/desirable it would be to have those macros. Any thoughts?
- swannodette 15y agoI showed my extensions to Dan & Will and they both liked them. I think miniKanren could benefit from clear, simple implementations of something like defrel, fact, etc.