Mercurial > urweb
diff src/list_util.sml @ 39:02f42e9a1825
Corify removes modules
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 19 Jun 2008 12:39:22 -0400 |
parents | 44b5405e74c7 |
children | 3739af9e727a |
line wrap: on
line diff
--- a/src/list_util.sml Thu Jun 19 10:06:59 2008 -0400 +++ b/src/list_util.sml Thu Jun 19 12:39:22 2008 -0400 @@ -80,6 +80,39 @@ fm ([], s) end +fun foldlMapConcat 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 (List.revAppend (h', ls'), s') t + end + in + fm ([], s) + end + +fun foldlMapPartial f s = + let + fun fm (ls', s) ls = + case ls of + nil => (rev ls', s) + | h :: t => + let + val (h', s') = f (h, s) + val ls' = case h' of + NONE => ls' + | SOME h' => h' :: ls' + in + fm (ls', s') t + end + in + fm ([], s) + end + fun search f = let fun s ls =