aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/list_util.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-01-26 16:44:39 -0500
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-01-26 16:44:39 -0500
commit53109d697cd8ff1aa7e4b8c41f3bd71dd2671fc0 (patch)
tree0da23cead212d30f6066b38f5a13b7fdfb3e0a15 /src/list_util.sml
parente7e2ffc58a4f120801ae69217032948e511af213 (diff)
Check for leftover kind unifs
Diffstat (limited to 'src/list_util.sml')
-rw-r--r--src/list_util.sml18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/list_util.sml b/src/list_util.sml
index fdc1ac55..eee8249b 100644
--- a/src/list_util.sml
+++ b/src/list_util.sml
@@ -42,4 +42,22 @@ fun mapfoldl f i =
mf i []
end
+structure S = Search
+
+fun mapfold f =
+ let
+ fun mf ls s =
+ case ls of
+ nil => S.Continue (nil, s)
+ | h :: t =>
+ case f h s of
+ S.Return x => S.Return x
+ | S.Continue (h', s) =>
+ case mf t s of
+ S.Return x => S.Return x
+ | S.Continue (t', s) => S.Continue (h' :: t', s)
+ in
+ mf
+ end
+
end