[Haskell-cafe] Is Curry alive?
Sebastian Fischer
fischer at nii.ac.jp
Tue Nov 2 07:09:16 EDT 2010
Hi Gregory,
On Nov 2, 2010, at 9:27 AM, Gregory Crosswhite wrote:
> I was thinking about using Curry, but it looks to me like the
> language is dead and hasn't seen much activity for a few years.
The community is smaller than the Haskell community but the PAKCS
system is still actively developed. MCC is a compiler that generates C
(rather than Prolog) code (which is often more efficient) but does not
come with the same libraries as PAKCS.
> Actually, the more that I think about my problem the more that I'm
> thinking I should just stick with the List monad.
If this is feasible then staying in Haskell might be a good choice.
> Which does raise the question: when is it better to use a logic
> programming language instead of the list monad?
It is more cumbersome to model logic variables and unification in a
pure functional language than having them provided natively. If you
need unification or constraint solving then a language with built-in
logic variables has an advantage.
An advantage of combining laziness with non-determinism as in Curry is
that you can interleave the non-deterministic generation of nested
data with categorizing it which is more efficient, if the evaluation
function is lazy. This combination is more cumbersome in a pure
functional language than in a lazy functional-logic language like
Curry (see [1] for how to do it). If you always need to generate
elements completely before you categorize them, you probably do not
gain from lazy non-determinism.
Cheers,
Sebastian
[1]: http://www-ps.informatik.uni-kiel.de/~sebf/data/pub/icfp09.pdf
http://sebfisch.github.com/explicit-sharing/
More information about the Haskell-Cafe
mailing list