[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