aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/list_util.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-06-10 15:56:33 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-06-10 15:56:33 -0400
commit0b48781249e7062928ff78ae3469a508a3e31eaa (patch)
tree9e6bdf99508109633f198c8a01948c165cad3b86 /src/list_util.sml
parentbe45a4a950e01689219ebc5032f53f66b012f660 (diff)
Closure conversion
Diffstat (limited to 'src/list_util.sml')
-rw-r--r--src/list_util.sml15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/list_util.sml b/src/list_util.sml
index 626d0ec0..aed2cdf0 100644
--- a/src/list_util.sml
+++ b/src/list_util.sml
@@ -60,6 +60,21 @@ fun mapfold f =
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 =