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
_______________________________________________
curry mailing list -- curry_at_lists.rwth-aachen.de
To unsubscribe send an email to curry-leave_at_lists.rwth-aachen.de
https://lists.rwth-aachen.de/postorius/lists/curry.lists.rwth-aachen.de
Received on Mo Dez 16 2019 - 23:19:31 CET