equal
deleted
inserted
replaced
99 val replicate: int -> 'a -> 'a list |
99 val replicate: int -> 'a -> 'a list |
100 val map_product: ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list |
100 val map_product: ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list |
101 val fold_product: ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c |
101 val fold_product: ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c |
102 val map2: ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list |
102 val map2: ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list |
103 val fold2: ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c |
103 val fold2: ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c |
104 val fold_rev2: ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c |
|
105 val forall2: ('a -> 'b -> bool) -> 'a list -> 'b list -> bool |
|
106 val map_split: ('a -> 'b * 'c) -> 'a list -> 'b list * 'c list |
104 val map_split: ('a -> 'b * 'c) -> 'a list -> 'b list * 'c list |
107 val zip_options: 'a list -> 'b option list -> ('a * 'b) list |
105 val zip_options: 'a list -> 'b option list -> ('a * 'b) list |
108 val ~~ : 'a list * 'b list -> ('a * 'b) list |
106 val ~~ : 'a list * 'b list -> ('a * 'b) list |
109 val split_list: ('a * 'b) list -> 'a list * 'b list |
107 val split_list: ('a * 'b) list -> 'a list * 'b list |
110 val burrow_fst: ('a list -> 'b list) -> ('a * 'c) list -> ('b * 'c) list |
108 val burrow_fst: ('a list -> 'b list) -> ('a * 'c) list -> ('b * 'c) list |
533 |
531 |
534 fun fold2 _ [] [] z = z |
532 fun fold2 _ [] [] z = z |
535 | fold2 f (x :: xs) (y :: ys) z = fold2 f xs ys (f x y z) |
533 | fold2 f (x :: xs) (y :: ys) z = fold2 f xs ys (f x y z) |
536 | fold2 _ _ _ _ = raise ListPair.UnequalLengths; |
534 | fold2 _ _ _ _ = raise ListPair.UnequalLengths; |
537 |
535 |
538 fun fold_rev2 _ [] [] z = z |
|
539 | fold_rev2 f (x :: xs) (y :: ys) z = f x y (fold_rev2 f xs ys z) |
|
540 | fold_rev2 _ _ _ _ = raise ListPair.UnequalLengths; |
|
541 |
|
542 fun forall2 _ [] [] = true |
|
543 | forall2 P (x :: xs) (y :: ys) = P x y andalso forall2 P xs ys |
|
544 | forall2 _ _ _ = raise ListPair.UnequalLengths; |
|
545 |
|
546 fun map_split _ [] = ([], []) |
536 fun map_split _ [] = ([], []) |
547 | map_split f (x :: xs) = |
537 | map_split f (x :: xs) = |
548 let |
538 let |
549 val (y, w) = f x; |
539 val (y, w) = f x; |
550 val (ys, ws) = map_split f xs; |
540 val (ys, ws) = map_split f xs; |