Hi Volker, such a statement should be relaxed to the intention that Curry is conceptually an extension of functional programming a la Haskell. Thus, the syntax is oriented towards Haskell, and the operational semantics is non-strict as in Haskell, if logic features are not used, but Curry offers also demand-driven non-determinism. As Jeffrey pointed out, Haskell has many features that are not (yet?) supported (there is no principle reason for it, just a matter of work). 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. Regards, Michael On 16.12.19 18:00, Volker Wysk wrote:
Hi!
I've read that Curry is a super set of Haskell, except for the type classes. But some Curry implementations do also include Haskell type classes.
Does that mean, that Haskell code can easily be used inside Curry programs? Like C in C++? Is it possible to use all those Haskell libraries in Curry?
Or, if not, is it very easy to port Haskell to Curry?
Cheers Volker