24 lines
No EOL
514 B
Text
24 lines
No EOL
514 B
Text
-- a simple list data type containing ints
|
|
data List () where {
|
|
Cons : Int -> List () -> List ()
|
|
Nil : List ()
|
|
};
|
|
|
|
main = sumlength (Cons 1 (Cons 2 (Cons 3 (Cons 4 (Cons 5 Nil)))));
|
|
|
|
-- take the length of a list
|
|
length : List () -> Int ;
|
|
length x = case x of {
|
|
Cons _ xs => 1 + length xs ;
|
|
Nil => 0 ;
|
|
};
|
|
-- sum a list
|
|
sum : List () -> Int ;
|
|
sum x = case x of {
|
|
Cons a xs => a + sum xs ;
|
|
Nil => 0 ;
|
|
};
|
|
|
|
-- sum + length of a list
|
|
sumlength: List () -> Int ;
|
|
sumlength x = sum x + length x ; |