churf/sample-programs/eta_test2.crf
2023-05-12 16:25:48 +02:00

19 lines
357 B
Text

data List a where
Nil : List a
Cons : a -> List a -> List a
map : (a -> b) -> List a -> List b
map f xs = case xs of
Nil => Nil
Cons a as => Cons (f a) (map f as)
add : Int -> Int -> Int
add x y = x + y
sum : List Int -> Int
sum xs = case xs of
Nil => 0
Cons a as => a + (sum xs)
main : Int
main = sum (map (add 1) (Cons 1 Nil))