I was pretty amazed by the power of Prolog. It took some time to get the head around, but to me it seemed to be the coolest declarative language out there. That's why recently, after two years of some functional programming with Scala, I decided to take a look at logical programming again, to "train my brain" or better for actual usage.
Combining functional and logical programming seems attractive for me to learn/solidify concepts of both declarative paradigms. I find also find strong type systems very useful and fascinating.
Scala really shined with interop. Let's not reinvent wheels. It should be able to call code in another main language, and preferable also to be callable. But it doesn't have to be Java. C or Haskell would be ok too.
So, which are the most useful and enlightening FLP languages today, and what are your opinions and recommendations on them?
Here is what I found so far:
Mercury: claims to be fast, strongly typed Prolog. Pure declarative, but no logical variables! No constraint programming? Seems to be the most widely used FLP. Interop??
Curry: seems promising and the most advanced, but right now a bit low on documentation. Does "experimental" mean immature/not ready to dive into? just based on Haskell or actually good interop with Haskell?
Ciao: seems to provide many features I want, but Stack Overflow doesn't even seem to know it at all, although it exists since 1984? What's wrong with it? Interop?
drools (java library/DSL): claims it allows hybrid forward- and backward chaining. Mature. Direct interop with Java/Scala, but relying on mutable data / imperative constructs? How well does it integrate with functional JVM languages?
miniKanren: implementations exist on several platforms. How is interop? Efficient?
Lambda Prolog implementations such as:
Caledon: Might be nice, but heavy theory. Usefulness? Effective interop with Haskell? Documentation?
Teyjus. similar to Caledon.
Good but theoretic reads and biased towards curry and not addressing practical concerns:
http://doi.acm.org/10.1145/1721654.1721675
http://www.informatik.uni-kiel.de/~mh/slides/ETAPS00.pdf