diff src/list_util.sml @ 26:4ab19c19665f

Closure conversion
author Adam Chlipala <adamc@hcoop.net>
date Tue, 10 Jun 2008 15:56:33 -0400
parents bfa2e9ae4df8
children 1c91c5e6840f
line wrap: on
line diff
--- a/src/list_util.sml	Tue Jun 10 13:14:45 2008 -0400
+++ b/src/list_util.sml	Tue Jun 10 15:56:33 2008 -0400
@@ -60,6 +60,21 @@
         mf
     end
 
+fun foldlMap f s =
+    let
+        fun fm (ls', s) ls =
+            case ls of
+                nil => (rev ls', s)
+              | h :: t =>
+                let
+                    val (h', s') = f (h, s)
+                in
+                    fm (h' :: ls', s') t
+                end
+    in
+        fm ([], s)
+    end
+
 fun search f =
     let
         fun s ls =