diff demo/list.ur @ 501:7ef4b2911b09

Some demo improvements
author Adam Chlipala <adamc@hcoop.net>
date Thu, 20 Nov 2008 11:34:36 -0500
parents 4d519baf357c
children 669ac5e9a69e
line wrap: on
line diff
--- a/demo/list.ur	Thu Nov 20 10:44:28 2008 -0500
+++ b/demo/list.ur	Thu Nov 20 11:34:36 2008 -0500
@@ -1,15 +1,21 @@
 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) =
+    let
+        fun length' (ls : list t) (acc : int) =
+            case ls of
+                Nil => acc
+              | Cons (_, ls') => length' ls' (acc + 1)
+    in
+        length' ls 0
+    end
 
-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
+fun rev (t ::: Type) (ls : list t) = 
+    let
+        fun rev' (ls : list t) (acc : list t) =
+            case ls of
+                Nil => acc
+              | Cons (x, ls') => rev' ls' (Cons (x, acc))
+    in
+        rev' ls Nil
+    end