4 ms·
I love these! I hope he's gonna cover miniKanren! This title kinda stinks since all the posts in the series have made it to front page. This is #4, and it's
by adenozine 6y ago
I love these!
I hope he's gonna cover miniKanren!
This title kinda stinks since all the posts in the series have made it to front page.
This is #4, and it's about datalog. Perhaps mods could adjust title.
- deleted 6y ago[deleted]
- slaymaker1907 6y agoYeah, I think that minikanren is a more useful language for embedding than datalog since it is more expressive than datalog and has a more straight forward execution model. The functional style of minikanren makes it easier to create things like parsers easily.
- adenozine 6y agoInteresting! I suppose it depends on the context though, right? For answer-set programming like database queries and stuff, I've seen some impressive datalog work done in the past. I'm not well versed in the extensions, and I actually haven't been able to read this post yet, I've been at work since the wee hours, but I was thinking of the success of Datomic. I believe that's datalog under the hood. I think of miniKanren as relentlessly general purpose, and not so much suited to a demanding niche like databases. I'm very interested in both. I remember watching a talk called The Promise Of Relational Programming a while back and thinking "this HAS to be the future of programming."
- erk__ 6y agoI hope he will cover some other exotic ideas like program inversion which I find really interesting, in the same area there is also specialization, though that is maybe a bit too similar to term rewriting.
- siliconmountain 6y agoI'm searching for an intro to miniKanren that's also an intro to logic programming. Ive never used datalog, clojure, or others. The main miniKanren website assumes preexisting Scheme / logic programming knowledge Any suggestion of where to start?
- philzook 6y agoI don't think you necessarily need much scheme knowledge to start learning minikanren. You might in order to read the implementation. There are versions out there in most languages I'd suggest just poking around in these first: http://io.livecode.ch/ http://io.livecode.ch/ online interactive minikanren examples http://tca.github.io/veneer/examples/editor.html http://tca.github.io/veneer/examples/editor.html more minikanren examples. You already mentioned http://minikanren.org/ http://minikanren.org/ You may also want to check out the book The Reasoned Schemer. I did a slightly faulty implementation ( I didn't get the search ordering right) in Julia here https://www.philipzucker.com/yet-another-microkanren-in-julia/ https://www.philipzucker.com/yet-another-microkanren-in-juli... Microkanren implementation tutorial https://www.youtube.com/watch?v=0FwIwewHC3o https://www.youtube.com/watch?v=0FwIwewHC3o . Also checkout the Kanren online meetup recordings https://www.youtube.com/user/WilliamEByrd/playlists https://www.youtube.com/user/WilliamEByrd/playlists
- Jtsummers 6y agoSeconding The Reasoned Schemer for learning miniKanren. It's a complete tutorial compared to most you'll find online that either quickly go from "here's how to start" to "now here's us generating lisp functions from specifications" or never move past the "here's how to start" portion. And like all the Schemer books, it's a pretty pleasant and easy read. You can go through a chapter sans computer and then revisit it with the computer (I read it while traveling so half the time I was reading, my computer wasn't readily available).
- mlang23 6y agoThe quine generator example is indeed very impressive... Ed Kmett did a live coding series on his attempt port kanren to Haskell. Hope guanxi makes some progress soon.
- fiddlerwoaroof 6y agoYeah, the articles title is: “Exotic Programming Ideas: Part 4 (Datalog)”. All the previous times this series has made the front page, it has had the part in the title.