Am Montag, den 16.12.2019, 23:18 +0100 schrieb Michael Hanus:
However, there is one important difference: Haskell has a sequential interpretation of equations, i.e., a rule like "p x = True" does not imply that predicate p always delivers True but it depends on preceding rules for p. In Curry, overlapping rules lead to non-deterministic programs. Furthermore, Curry programs might yield results where Haskell does not terminate due to a different (optimal) pattern matching strategy. Thus, many Haskell programs have an identical meaning in Curry but not all.
I'm a long-term Haskell user. Yes, that difference in the interpretation of equations was a source of confusion when I (partially) learned Mercury a few months ago... So you can't avoid looking at the entire code closely, when you want to port from Haskell to Curry. Goodbye, Volker