diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-10-21 12:06:35 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-10-21 12:06:35 -0400 |
commit | a23f12953a60c8f8d663266a9644a08a905b7b36 (patch) | |
tree | 017e4ed05769d4fff43b3ecfef4cef440d68653a /demo/list.ur | |
parent | cd8ba90217f6ed7efbf4882b4dcd8e199e510fbb (diff) |
ListShop skeleton
Diffstat (limited to 'demo/list.ur')
-rw-r--r-- | demo/list.ur | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/demo/list.ur b/demo/list.ur new file mode 100644 index 00000000..c2dfce22 --- /dev/null +++ b/demo/list.ur @@ -0,0 +1,15 @@ +datatype list t = Nil | Cons of t * list t + +fun length' (t ::: Type) (ls : list t) (acc : int) = + case ls of + Nil => acc + | Cons (_, ls') => length' ls' (acc + 1) + +fun length (t ::: Type) (ls : list t) = length' ls 0 + +fun rev' (t ::: Type) (ls : list t) (acc : list t) = + case ls of + Nil => acc + | Cons (x, ls') => rev' ls' (Cons (x, acc)) + +fun rev (t ::: Type) (ls : list t) = rev' ls Nil |