summaryrefslogtreecommitdiff
path: root/src/list_util.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-09-09 11:46:33 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-09-09 11:46:33 -0400
commit4960cd8c2ec1e02c90e42d16db13f045427b4173 (patch)
treea2823b006b357561d5866e778cb3ff2046836f8b /src/list_util.sml
parent27bece20a8abae9a2b4251e065010a4e52590c45 (diff)
Termination checking
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 f9826ab4..235a9654 100644
--- a/src/list_util.sml
+++ b/src/list_util.sml
@@ -163,4 +163,19 @@ fun foldri f i ls =
foldli (fn (n, x, s) => f (len - n - 1, x, s)) i (rev ls)
end
+fun foldliMap f s =
+ let
+ fun fm (n, ls', s) ls =
+ case ls of
+ nil => (rev ls', s)
+ | h :: t =>
+ let
+ val (h', s') = f (n, h, s)
+ in
+ fm (n + 1, h' :: ls', s') t
+ end
+ in
+ fm (0, [], s)
+ end
+
end