[Haskell-cafe] Learn Prolog...

Bill Wood william.wood3 at comcast.net
Sun Sep 2 09:24:23 EDT 2007


As to whether Prolog is "dead" or not, it depends on your definition of
"dead".  Three years ago (not ten!) I made my living maintaining and
developing a large application written in Prolog.  That was actually an
interesting experience, since one of the performance drivers was speed.
As a result code was being perpetually tuned toward less
non-determinism.  You know what the limit is?  Functional programming!
At the time I did a little research looking for an FP language that was
"ready for prime time" and for which the pain of the move for a large
organization would have been acceptably low.  Sadly, nothing came of it.
I still think the application could have been profitably ported to a
functional language.

Recently I have been experimenting with ECLiPSe, a Constraint Logic
Programming system embedded within standard Prolog.  I found several of
the problems in the Euler Project were perfect candidates for attack by
constraint programming.  Yes, I could have written solutions that
implemented some sort of search strategy, but there is a legitimate
question of leverage.  For example, Sudoku puzzles are very naturally
viewed as constraint programming problems.  But why should I write my
own solution when the Sudoku solver provided as a demo could solve 50
problems in 0.10 seconds!  By the way, I could get a fairly good idea of
the "how and why" of the problem nd its solution from the form of the
demo code, and oh yes I had already written my own Sudoku solver on
OCaml a year or so ago.

To Jerzy's point -- I strongly believe that learning a language like
Prolog is a good idea for two reasons -- first, it adds another tool to
the programmer's toolkit, and second, it enlarges the programmer's view
of ways to think about solving problems.

 -- Bill Wood




More information about the Haskell-Cafe mailing list