annotate lib/ur/listPair.ur @ 844:74a1e3bdf430

Fix datatype import bug in Elaborate; fix server-side source setting; more standard library stuff
author Adam Chlipala <adamc@hcoop.net>
date Sun, 07 Jun 2009 16:45:00 -0400
parents 78504d97410b
children 0d30e6338c65
rev   line source
adamc@826 1 fun mapX [a] [b] [ctx ::: {Unit}] f =
adamc@801 2 let
adamc@801 3 fun mapX' ls1 ls2 =
adamc@801 4 case (ls1, ls2) of
adamc@801 5 ([], []) => <xml/>
adamc@801 6 | (x1 :: ls1, x2 :: ls2) => <xml>{f x1 x2}{mapX' ls1 ls2}</xml>
adamc@801 7 | _ => error <xml>ListPair.mapX: Unequal list lengths</xml>
adamc@801 8 in
adamc@801 9 mapX'
adamc@801 10 end
adamc@844 11
adamc@844 12 fun all [a] [b] f =
adamc@844 13 let
adamc@844 14 fun all' ls1 ls2 =
adamc@844 15 case (ls1, ls2) of
adamc@844 16 ([], []) => True
adamc@844 17 | (x1 :: ls1, x2 :: ls2) => f x1 x2 && all' ls1 ls2
adamc@844 18 | _ => False
adamc@844 19 in
adamc@844 20 all'
adamc@844 21 end