equal
deleted
inserted
replaced
110 val fold: ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b |
110 val fold: ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b |
111 val fold_rev: ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b |
111 val fold_rev: ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b |
112 val fold_map: ('a -> 'b -> 'c * 'b) -> 'a list -> 'b -> 'c list * 'b |
112 val fold_map: ('a -> 'b -> 'c * 'b) -> 'a list -> 'b -> 'c list * 'b |
113 val foldr1: ('a * 'a -> 'a) -> 'a list -> 'a |
113 val foldr1: ('a * 'a -> 'a) -> 'a list -> 'a |
114 val foldl_map: ('a * 'b -> 'a * 'c) -> 'a * 'b list -> 'a * 'c list |
114 val foldl_map: ('a * 'b -> 'a * 'c) -> 'a * 'b list -> 'a * 'c list |
|
115 val unflat: 'a list list -> 'b list -> 'b list list |
115 val burrow: ('a list -> 'b list) -> 'a list list -> 'b list list |
116 val burrow: ('a list -> 'b list) -> 'a list list -> 'b list list |
116 val fold_burrow: ('a list -> 'c -> 'b list * 'd) -> 'a list list -> 'c -> 'b list list * 'd |
117 val fold_burrow: ('a list -> 'c -> 'b list * 'd) -> 'a list list -> 'c -> 'b list list * 'd |
117 val chop: int -> 'a list -> 'a list * 'a list |
118 val chop: int -> 'a list -> 'a list * 'a list |
118 val splitAt: int * 'a list -> 'a list * 'a list |
119 val splitAt: int * 'a list -> 'a list * 'a list |
119 val dropwhile: ('a -> bool) -> 'a list -> 'a list |
120 val dropwhile: ('a -> bool) -> 'a list -> 'a list |
650 |
651 |
651 (*flatten a list of lists to a list*) |
652 (*flatten a list of lists to a list*) |
652 val flat = List.concat; |
653 val flat = List.concat; |
653 |
654 |
654 fun unflat (xs :: xss) ys = |
655 fun unflat (xs :: xss) ys = |
655 let val (ps,qs) = splitAt(length xs,ys) |
656 let val (ps, qs) = chop (length xs) ys |
656 in ps :: unflat xss qs end |
657 in ps :: unflat xss qs end |
657 | unflat [] [] = [] |
658 | unflat [] [] = [] |
658 | unflat _ _ = raise UnequalLengths; |
659 | unflat _ _ = raise UnequalLengths; |
659 |
660 |
660 fun burrow f xss = |
661 fun burrow f xss = |