News for hackers. Stuff that matters.
Re:Clojure to die for by lelf on Tuesday March 11, 2014 @08:14AM (#7378755)
> clojure.core.logic - a Prolog-like logic language that you can embed in the middle of a Clojure function - is a good example of something that is possible thanks to Clojure's lisp macros.

import Control.Monad.Logic

And! You don't macros for that. Macros are not used much in Haskell (only for very special cases), there's no need for them.

Re:Clojure to die for by danidiaz on Tuesday March 11, 2014 @03:12PM (#7381481)
While useful, Control.Monad.Logic is not really an alternative to core.logic. It is a search monad more than anything, and it doesn't perform any unification or constraint propagation.

The type system gets a bit in the way when implementing something like miniKanren in Haskell. I suspect Clojure is a better fit for this kind of highly dynamic problem.

Re:Clojure to die for by Skinney on Tuesday March 11, 2014 @10:06AM (#7379238)
core.logic doesn't really use macros does it? Maybe to simplify the syntax, but macros is in no way required to build a core.logic library, at least not in the same way as core.async requires it.

The real beauty of macros is to simplify syntax without taking a runtime performance hit.

How would you implement thread-first or thread-last in Haskell without a runtime performance hit? Template Haskell?