equal
deleted
inserted
replaced
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) = |