[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