summaryrefslogtreecommitdiff
path: root/src/list_util.sml
diff options
context:
space:
mode:
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 =