src/Pure/library.ML
changeset 36692 54b64d4ad524
parent 35976 ea3d4691a8c6
child 37851 1ce77362598f
equal deleted inserted replaced
36674:d95f39448121 36692:54b64d4ad524
     9 *)
     9 *)
    10 
    10 
    11 infix 2 ?
    11 infix 2 ?
    12 infix 3 o oo ooo oooo
    12 infix 3 o oo ooo oooo
    13 infix 4 ~~ upto downto
    13 infix 4 ~~ upto downto
    14 infix orf andf mem mem_int mem_string
    14 infix orf andf
    15 
    15 
    16 signature BASIC_LIBRARY =
    16 signature BASIC_LIBRARY =
    17 sig
    17 sig
    18   (*functions*)
    18   (*functions*)
    19   val undefined: 'a -> 'b
    19   val undefined: 'a -> 'b
   162   val update: ('a * 'a -> bool) -> 'a -> 'a list -> 'a list
   162   val update: ('a * 'a -> bool) -> 'a -> 'a list -> 'a list
   163   val union: ('a * 'a -> bool) -> 'a list -> 'a list -> 'a list
   163   val union: ('a * 'a -> bool) -> 'a list -> 'a list -> 'a list
   164   val subtract: ('b * 'a -> bool) -> 'b list -> 'a list -> 'a list
   164   val subtract: ('b * 'a -> bool) -> 'b list -> 'a list -> 'a list
   165   val inter: ('a * 'b -> bool) -> 'b list -> 'a list -> 'a list
   165   val inter: ('a * 'b -> bool) -> 'b list -> 'a list -> 'a list
   166   val merge: ('a * 'a -> bool) -> 'a list * 'a list -> 'a list
   166   val merge: ('a * 'a -> bool) -> 'a list * 'a list -> 'a list
   167   val mem: ''a * ''a list -> bool
       
   168   val mem_int: int * int list -> bool
       
   169   val mem_string: string * string list -> bool
       
   170   val subset: ('a * 'b -> bool) -> 'a list * 'b list -> bool
   167   val subset: ('a * 'b -> bool) -> 'a list * 'b list -> bool
   171   val eq_set: ('a * 'b -> bool) -> 'a list * 'b list -> bool
   168   val eq_set: ('a * 'b -> bool) -> 'a list * 'b list -> bool
   172   val distinct: ('a * 'a -> bool) -> 'a list -> 'a list
   169   val distinct: ('a * 'a -> bool) -> 'a list -> 'a list
   173   val duplicates: ('a * 'a -> bool) -> 'a list -> 'a list
   170   val duplicates: ('a * 'a -> bool) -> 'a list -> 'a list
   174   val has_duplicates: ('a * 'a -> bool) -> 'a list -> bool
   171   val has_duplicates: ('a * 'a -> bool) -> 'a list -> bool
   799   if pointer_eq (xs, ys) then xs
   796   if pointer_eq (xs, ys) then xs
   800   else if null xs then ys
   797   else if null xs then ys
   801   else fold_rev (insert eq) ys xs;
   798   else fold_rev (insert eq) ys xs;
   802 
   799 
   803 
   800 
   804 (* old-style infixes *)
       
   805 
       
   806 fun x mem xs = member (op =) xs x;
       
   807 fun (x: int) mem_int xs = member (op =) xs x;
       
   808 fun (x: string) mem_string xs = member (op =) xs x;
       
   809 
       
   810 
       
   811 (* subset and set equality *)
   801 (* subset and set equality *)
   812 
   802 
   813 fun subset eq (xs, ys) = forall (member eq ys) xs;
   803 fun subset eq (xs, ys) = forall (member eq ys) xs;
   814 
   804 
   815 fun eq_set eq (xs, ys) =
   805 fun eq_set eq (xs, ys) =