Haskell-RL

From FSL
Jump to: navigation, search

(under construction)

Information

Haskell-RL is the result of thesis work done by Andrew Bennett, and demonstrates the use of Maude to specify a lazy evaluation language like Haskell.

Presented to the FSL group during weekly meeting: File:Hrl-group-presentation.pdf

Distributions

Haskell-RL: An Equational Specification of Haskell in Maude
Paper and Maude implementation can be found on the above link

Examples

eval(
'fib n
  |=(==(n,0),0)
  |=(==(n,1),1)
  |=(>(n,1), (+('fib (+(n,-2)), ('fib (+(n,-1))))))
,
'fib 14
) .
eval*(
data 'List = dt('Cons, (T,T)) || dt('Nil,()) ;
'fold (f n dt('Cons, (x,l))) = f x ('fold f n l) ;
'fold (f n x) = n ;
f 0 = dt('Nil, ()) ;
f x = dt('Cons, (x,(f (+(-1,x)))))
,
Tuple('fold (\ x -> \ y -> +(x,y)) 0 (f 20), 'fold (\ x -> \ y -> *(x,y)) 1 (f 20))
) .
Personal tools
Namespaces

Variants
Actions
Navigation