Added η-expander module and removed EAdd from grammar.
This commit is contained in:
parent
c3bcdfa81b
commit
8b92dd9194
8 changed files with 113 additions and 18 deletions
|
|
@ -22,23 +22,20 @@ filter p xs = case xs of
|
|||
True => Cons x (filter p xs)
|
||||
False => filter p xs
|
||||
|
||||
.++ as bs = case as of
|
||||
(++) as bs = case as of
|
||||
Nil => bs
|
||||
Cons x xs => Cons x (xs ++ bs)
|
||||
|
||||
.:: a as = Cons a as
|
||||
|
||||
quicksort : List Int -> List Int
|
||||
quicksort xs = case xs of
|
||||
Nil => Nil
|
||||
Cons a as => let smaller = quicksort (filter (\y. y < a) xs)
|
||||
in let bigger = quicksort (filter (\y. a < y) xs)
|
||||
in smaller ++ (a :: bigger)
|
||||
in smaller ++ (Cons a bigger)
|
||||
|
||||
descList : Int -> Int -> List Int
|
||||
descList from to = case to < from of
|
||||
False => Cons to (descList from (to - 1))
|
||||
True => Nil
|
||||
|
||||
main = let list = (5 :: (2 :: (8 :: (9 :: (6 :: (0 :: (1 :: Nil)))))))
|
||||
in printStr (toStr (quicksort list))
|
||||
-- main = let list = (5 :: (2 :: (8 :: (9 :: (6 :: (0 :: (1 :: Nil))))))) in printStr (toStr (quicksort list))
|
||||
|
|
|
|||
4
sample-programs/eta_test1.crf
Normal file
4
sample-programs/eta_test1.crf
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
id x = x
|
||||
f = id
|
||||
|
||||
main = f 1
|
||||
19
sample-programs/eta_test2.crf
Normal file
19
sample-programs/eta_test2.crf
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
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))
|
||||
Loading…
Add table
Add a link
Reference in a new issue