diff lib/ur/list.ur @ 1840:146ec8e90063

Add some name-mangling rules to allow XML attribute 'name' and attributes with dashes
author Adam Chlipala <adam@chlipala.net>
date Thu, 27 Dec 2012 15:34:11 -0500
parents a613cae954ca
children d9f918b79b5a
line wrap: on
line diff
--- a/lib/ur/list.ur	Thu Dec 13 17:51:34 2012 -0500
+++ b/lib/ur/list.ur	Thu Dec 27 15:34:11 2012 -0500
@@ -437,3 +437,15 @@
     in
         mapXiM' 0
     end
+
+fun tabulateM [m] (_ : monad m) [a] (f : int -> m a) n =
+    let
+        fun tabulate' n acc =
+            if n <= 0 then
+                return acc
+            else
+                (v <- f (n-1);
+                 tabulate' (n-1) (v :: acc))
+    in
+        tabulate' n []
+    end