I also urge that Curry should stick closely to Haskell.
Simon PJ has put the case well.
> However, please note that, in a functional logic
> environment, we need one more equality. In Haskell you have two
> kinds of equalities: a non-strict one (equations defining functions)
> and a strict one (to compare data). In a logic environment you also
> need an equality to add new constraints to your data (corresponding
> to unification in pure logic programming). Therefore, we have to
> distinguish these equalities by different pieces of syntax.
> We have used the symbol := for defining equations since this
> symbol expresses the fact that the defining equations are non-symmetric
> and only used from left to right.
Of course, = as used in Haskell also has a left to right bias.
So what is the problem here? I'm not at all convinced that there
are three distinct notions of equality in the language.
> This is one of the main differences between Curry and Haskell.
> So-called uniform programs have the same meaning in Curry and
> Haskell, but non-uniform programs as above have different meanings.
Good point, and well worth stressing. Nonetheless, it still seems
quite reasonable to say that Curry should contain all Haskell
that eschew type classes and non-uniform pattern matching.
-- P
Received on Mi Dez 18 1996 - 22:10:28 CET
This archive was generated by hypermail 2.3.0
: Do Jun 20 2024 - 07:15:05 CEST