Prolog is awesome and I recommend learning it if only for kicks and experiencing foreign programming paradigm. Many concepts are expressed in a completely different and (when paradigm "kicks in") are arguably much simpler.

E.g. in Prolog you don't usually operate on collection but instead provide information what the collection item actually is and then let the implementation figure it out. Drawing dependency tree is an effect of 3 rules: what is an entity, how to figure out that entity X and Y have relation, how to represent it.

I have 2 gripes with it, though. One is that it's difficult and thus it's hard to convince people to learn/use it. Second - I didn't yet found way to seamlessly integrate it into other apps (I know that FFI is an option, but it doesn't convince me as production ready).

For the last couple months I've been looking for some more "production" Prolog alternatives but what I found so far (LispWorks, Franz Allegro CL) costs a kidney and is not integration friendly.

If anyone has success integrating Prolog in modern software please share, I'm really curious. I'm also looking for some GUI solutions in it as XPCE doesn't work on Mac :(

Oh, and check out the Swish for online notebook: https://swish.swi-prolog.org

Clojure has a Prolog library written for it called core.logic. I definitely didn't know Prolog well enough to make good use of all the esoteric function names but it seemed cool.

https://github.com/clojure/core.logic