module CCOrd:sig
..end
type'a
t ='a -> 'a -> int
val compare : 'a t
val opp : 'a t -> 'a t
val equiv : int -> int -> bool
true
iff the two comparison results are the sameval int : int t
val string : string t
val bool : bool t
val float : float t
val (<?>) : int -> 'a t * 'a * 'a -> int
c1 <?> (ord, x, y)
returns the same as c1
if c1
is not 0
;
otherwise it uses ord
to compare the two values x
and y
,
of type 'a
.
Example:
CCInt.compare 1 3
<?> (String.compare, "a", "b")
<?> (CCBool.compare, true, false)
Same example, using only CCOrd::
CCOrd.(int 1 3
<?> (string, "a", "b")
<?> (bool, true, false))
val option : 'a t -> 'a option t
None
is smaller than any Some _
.val pair : 'a t -> 'b t -> ('a * 'b) t
val triple : 'a t -> 'b t -> 'c t -> ('a * 'b * 'c) t
val list : 'a t -> 'a list t
val array : 'a t -> 'a array t
val map : ('a -> 'b) -> 'b t -> 'a t
map f ord
is the comparison function that, given objects x
and y
,
projects x
and y
using f
(e.g. using a record field) and then
compares those projections with ord
.
Example:
map fst CCInt.compare
compares values of type (int * 'a)
by their
first component.val (>|=) : 'b t -> ('a -> 'b) -> 'a t
CCOrd.map
module Infix:sig
..end