If you don't know Prolog, I can give a very warm recommendation to spend some time and get familiar with Prolog. It's an extremely simple programming language that is a good example of taking a formal abstraction (predicate logic) and turning it into a practical programming language.<p>Prolog is also a very good example of the power of the unification algorithm. Unification is also used in e.g. type inference algorithms in programming languages like ML or Haskell.<p>Prolog is also homoiconic ("code is data", like Lisp) so it's very well suited for doing experiments in languages. A commonly used example is to create a Prolog dialect with fuzzy logic semantics.<p>Finally, while you might never get a chance to use Prolog in your day job, it's a programming language that will expand your horizons and learning it will, in my opinion, make you a better programmer.
Wow! Am I the only one reading this book? No comments so far about the book. I don't remember how I ended up reading this book for past an hour or so. I know Lisp so jumped on Part III after reading the Chapter 1. This really looks like a gem I have never heard of. Anyone already read this? Any comments? Not much in Amazon Reviews.<p>Thanks for sharing!
For anyone looking to learn prolog, I highly recommend the ciao [1] system. It has many features that help both with exploring the language and with solving actual problems. It also supports some additional constraint programming stuff that I think is really cool.<p>[1] - <a href="http://ciao-lang.org/" rel="nofollow">http://ciao-lang.org/</a>
prolog is also on my list of "to learns", and just this week i threw "progol" on there, too. i explored datalog a few weeks ago and enjoyed it, and like martinced notes i'm also eying datomic.<p>i have been bitten by the AI bug.