[Haskell-cafe] Purely logical programming language

Jan Christiansen jac at informatik.uni-kiel.de
Tue May 26 17:11:28 EDT 2009


On 26.05.2009, at 21:24, Lauri Alanko wrote:

> Mercury also has type classes and other Haskellisms, so if you're
> interested in "doing Prolog the Haskell way", you should definitely
> have a look at it.

I have to admit that I am not very familiar with Mercury. But if you  
are looking for "doing Prolog the Haskell way" <advertise>you can also  
have a look at Curry</advertise>. Curry is a lazy functional logic  
programming language that has a Haskell like syntax (http://www.curry-language.org/ 
). Besides standard functional features it provides non-determinism  
and narrowing. In contrast to Haskell overlapping rules in function  
definitions induce non-determinism. For example the following  
"function" non-deterministically inserts an element at each position  
of a list.

  insert :: a -> [a] -> [a]
  insert x xs       = x : xs
  insert x (y:ys) = y : insert x ys

 From the side-effects point of view Curry is very boring as it does  
not provide type classes but there is one monad namely the IO monad  
for doing side effects.

Cheers, Jan

More information about the Haskell-Cafe mailing list