Mercurial > urweb
diff lib/ur/listPair.ur @ 846:0d30e6338c65
Some standard library reorgs and additions; handle mutual datatypes better in Specialize
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Tue, 09 Jun 2009 18:11:59 -0400 |
parents | 74a1e3bdf430 |
children | 1c2f335297b7 |
line wrap: on
line diff
--- a/lib/ur/listPair.ur Tue Jun 09 11:12:34 2009 -0400 +++ b/lib/ur/listPair.ur Tue Jun 09 18:11:59 2009 -0400 @@ -1,3 +1,17 @@ +fun foldlPartial [a] [b] [c] f = + let + fun foldlPartial' acc ls1 ls2 = + case (ls1, ls2) of + ([], []) => Some acc + | (x1 :: ls1, x2 :: ls2) => + (case f x1 x2 acc of + None => None + | Some acc' => foldlPartial' acc' ls1 ls2) + | _ => None + in + foldlPartial' + end + fun mapX [a] [b] [ctx ::: {Unit}] f = let fun mapX' ls1 ls2 =