src/Pure/library.ML
changeset 7468 6ce03d2f7d91
parent 7090 dd30a72880c7
child 7712 c522ec2adc37
equal deleted inserted replaced
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)