diff options
Diffstat (limited to 'stdlib')
-rw-r--r-- | stdlib/obj.ml | 1 | ||||
-rw-r--r-- | stdlib/obj.mli | 1 | ||||
-rw-r--r-- | stdlib/set.ml | 5 | ||||
-rw-r--r-- | stdlib/set.mli | 1 |
4 files changed, 6 insertions, 2 deletions
diff --git a/stdlib/obj.ml b/stdlib/obj.ml index 7e2d966bb..247f4cdf5 100644 --- a/stdlib/obj.ml +++ b/stdlib/obj.ml @@ -10,4 +10,3 @@ external size : t -> int = "%array_length" external field : t -> int -> t = "%array_unsafe_get" external set_field : t -> int -> t -> unit = "%array_unsafe_set" external new_block : int -> int -> t = "obj_block" -external update : t -> t -> unit = "%update" diff --git a/stdlib/obj.mli b/stdlib/obj.mli index 7e2d966bb..247f4cdf5 100644 --- a/stdlib/obj.mli +++ b/stdlib/obj.mli @@ -10,4 +10,3 @@ external size : t -> int = "%array_length" external field : t -> int -> t = "%array_unsafe_get" external set_field : t -> int -> t -> unit = "%array_unsafe_set" external new_block : int -> int -> t = "obj_block" -external update : t -> t -> unit = "%update" diff --git a/stdlib/set.ml b/stdlib/set.ml index 84a8a942c..f0434f265 100644 --- a/stdlib/set.ml +++ b/stdlib/set.ml @@ -22,6 +22,7 @@ module type S = val equal: t -> t -> bool val iter: (elt -> 'a) -> t -> unit val fold: (elt -> 'a -> 'a) -> t -> 'a -> 'a + val cardinal: t -> int val elements: t -> elt list val choose: t -> elt end @@ -212,6 +213,10 @@ module Make(Ord: OrderedType): (S with elt = Ord.t) = Empty -> accu | Node(l, v, r, _) -> fold f l (f v (fold f r accu)) + let rec cardinal = function + Empty -> 0 + | Node(l, v, r, _) -> cardinal l + 1 + cardinal r + let rec elements_aux accu = function Empty -> accu | Node(l, v, r, _) -> elements_aux (v :: elements_aux accu r) l diff --git a/stdlib/set.mli b/stdlib/set.mli index dff78105a..f88480b3c 100644 --- a/stdlib/set.mli +++ b/stdlib/set.mli @@ -22,6 +22,7 @@ module type S = val equal: t -> t -> bool val iter: (elt -> 'a) -> t -> unit val fold: (elt -> 'a -> 'a) -> t -> 'a -> 'a + val cardinal: t -> int val elements: t -> elt list val choose: t -> elt end |