Derek Elkins writes:
Jonathan Cast wrote:

I find the only similarity between Haskell and Prolog to be that neither is imperative.

Indeed, you've discovered it.  The definition of "declarative" is often
"not imperative."

I disagree. Practically. (I won't discuss doctrinal matter nor linguistic
hairsplitting).
The relational syntax of Prolog is more "universal" than the functional
notation, since you have logic variables and logical-non-determinism, and
- thus - the possibility of making predicates where the roles of input and
output parameters are not pre-assigned, -
- but there is a *strong* (meaning important) functional layer within,
and plenty of Prolog algorithms are expressed similarly in Lisp or in
Haskell.
Many non-deterministic ones have natural translation into the List monad.
Some "circular" definitions using laziness are related to ones with
non-instantiated logical variables.
If you don't want to see similarities, you won't.  But I assure you that
I have profited enormously from tha *affinities* between functional and
logic approaches, and you won't convince me that "declarative" is without
substance. Jerzy Karczmarczuk

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to