On 27 Mar 2008, at 8:25 pm, Robert Wills wrote:

This might also be relevant:
http://web.engr.oregonstate.edu/~erwig/zurg/

But note that the Prolog code that they compared against was, um,
let's put this kindly, seriously naive.  For example,
(a) it has 36 SLOC.        You can do it naturally in 20.
(b) it has  8 predicates.  You can do it naturally in  4.
(c) it does lots of list munching, and that inefficiently.
You can do it much more naturally with the only list being the solution. Indeed, a very minor rewrite from the natural code gives you a Prolog program where NO heap storage is allocated except the list of move names.
(d) It generates candidate solutions and then rejects ones that take too
long. It is easier and more natural to reject over-time paths before
    extending them to solutions, so the Prolog code they used for
    comparison is *structurally* inefficient.

30 years ago people were writing papers showing that Lisp was better than very badly written Prolog. Now they are writing papers showing that Haskell is better than very badly written Prolog. How things have changed! NOT.

Also note that the paper says
        "The most important feature of Haskell that supports
         [the impression that Haskell is good at this kind of
          thing]
         is the availability of multi-parameter type classes..."
and that Haskell 98 had no multi-parameter type classes, which are
a pretty advanced part of the language for beginners to understand.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to