changeset 7468 | 6ce03d2f7d91 |
parent 7090 | dd30a72880c7 |
child 7712 | c522ec2adc37 |
7467:71e5d8671e7b | 7468:6ce03d2f7d91 |
---|---|
105 val exists2: ('a * 'b -> bool) -> 'a list * 'b list -> bool |
105 val exists2: ('a * 'b -> bool) -> 'a list * 'b list -> bool |
106 val forall2: ('a * 'b -> bool) -> 'a list * 'b list -> bool |
106 val forall2: ('a * 'b -> bool) -> 'a list * 'b list -> bool |
107 val seq2: ('a * 'b -> unit) -> 'a list * 'b list -> unit |
107 val seq2: ('a * 'b -> unit) -> 'a list * 'b list -> unit |
108 val ~~ : 'a list * 'b list -> ('a * 'b) list |
108 val ~~ : 'a list * 'b list -> ('a * 'b) list |
109 val split_list: ('a * 'b) list -> 'a list * 'b list |
109 val split_list: ('a * 'b) list -> 'a list * 'b list |
110 val equal_lists: ('a * 'b -> bool) -> 'a list * 'b list -> bool |
|
110 val prefix: ''a list * ''a list -> bool |
111 val prefix: ''a list * ''a list -> bool |
111 val take_prefix: ('a -> bool) -> 'a list -> 'a list * 'a list |
112 val take_prefix: ('a -> bool) -> 'a list -> 'a list * 'a list |
112 val take_suffix: ('a -> bool) -> 'a list -> 'a list * 'a list |
113 val take_suffix: ('a -> bool) -> 'a list -> 'a list * 'a list |
113 |
114 |
114 (*integers*) |
115 (*integers*) |
590 |
591 |
591 (*inverse of ~~; the old 'split': |
592 (*inverse of ~~; the old 'split': |
592 [(x1, y1), ..., (xn, yn)] ===> ([x1, ..., xn], [y1, ..., yn])*) |
593 [(x1, y1), ..., (xn, yn)] ===> ([x1, ..., xn], [y1, ..., yn])*) |
593 fun split_list (l: ('a * 'b) list) = (map #1 l, map #2 l); |
594 fun split_list (l: ('a * 'b) list) = (map #1 l, map #2 l); |
594 |
595 |
596 fun equal_lists eq (xs, ys) = length xs = length ys andalso forall2 eq (xs, ys); |
|
597 |
|
595 |
598 |
596 (* prefixes, suffixes *) |
599 (* prefixes, suffixes *) |
597 |
600 |
598 fun [] prefix _ = true |
601 fun [] prefix _ = true |
599 | (x :: xs) prefix (y :: ys) = x = y andalso (xs prefix ys) |
602 | (x :: xs) prefix (y :: ys) = x = y andalso (xs prefix ys) |