Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Just wanted to communicate how amazing it was to have two of the authors of The Reasoned Schemer (Dan Friedman, William Byrd) there this year. At the first Clojure/conj I was opening up its pages for the very first time. To find out that such a powerful computational model can be described in about ~200 lines of Scheme was a shocker. To find out that it is also efficient was just unbelievable. I'd been doing Clojure for two years already I don't think it really hit me what Lisp had to offer until I spent nearly 6 months understanding those mere 200 lines and reimplementing them in Clojure.

Having Dan and Will around to bounce ideas off at the Clojure/conj was simply incredible. One thing I've disliked about the miniKanren system is that many finite programs do not terminate depending on where the recursion occurs. Dan & Will have been working on that problem for 8 years.

Being the unprincipled fool that I am I decided to tackle this problem head on. Over the past weekend I implemented a version of miniKanren that not only terminates now for an incredible number of programs (it implements fair conjunction), but it does so without sacrificing miniKanren's excellent sequential performance when you so desire it.

So for me, yes modern programs should be written in Lisp. We don't even know what modern programs should look like yet :)



So that's where core.logic came from? I just went and bought TRS so that I can figure out where you're coming from with that.


Yes core.logic is an implementation of miniKanren. Soon as Dan Friedman and William Byrd confirm my approach to fair conjunction is solid, I plan on integrating fairKanren to be followed by cKanren which will bring powerful constraint solving facilities into Clojure.


Do you mean fair conjunction like in "Backtracking, Interleaving, and Terminating Monad Transformers" or something else/new?


I don't think so though I'm not totally sure. That paper isn't really about logic programming in general - no vars, no unification.


I think you're right and I had the stupids the other day: what this paper describes is simply your conde (né condi). No?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: