[Haskell-cafe] Is Curry alive?

Dan Doel dan.doel at gmail.com
Thu Nov 4 18:06:40 EDT 2010


On Thursday 04 November 2010 5:13:23 pm Gregory Crosswhite wrote:
>   On 11/02/2010 08:37 PM, wren ng thornton wrote:
> > Indeed. If your program requires unification or constraint solving
> > then logic programming or constraint programming[1] is the way to go.
> 
> Would you be kind enough to give me or point me towards a good example
> of such a case?  I've been trying to understand what the point of logic
> languages is for a while now, but whenever I look at them I have trouble
> seeing what exactly it is they offer that solves some problems
> better/more easily than functional languages.

Implementing type inference can be very easy in a logic language, because most 
of the work in a non-logic language is implementing unification:

  http://muaddibspace.blogspot.com/2008/01/type-inference-for-simply-typed-
lambda.html

3 lines of Prolog to infer types for the simply typed lambda calculus with 
meta-variables (not counting the operator fixity declarations). I've written 
something similar in Haskell, and it's more like 80 lines of real code, a lot 
of which is implementing things that are simply part of Prolog's computation 
model.

-- Dan


More information about the Haskell-Cafe mailing list