diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-09-09 11:46:33 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-09-09 11:46:33 -0400 |
commit | 4960cd8c2ec1e02c90e42d16db13f045427b4173 (patch) | |
tree | a2823b006b357561d5866e778cb3ff2046836f8b /src/list_util.sml | |
parent | 27bece20a8abae9a2b4251e065010a4e52590c45 (diff) |
Termination checking
Diffstat (limited to 'src/list_util.sml')
-rw-r--r-- | src/list_util.sml | 15 |
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 |