package containers

  1. Overview
  2. Docs
A modular, clean and powerful extension of the OCaml standard library

Install

Dune Dependency

Authors

Maintainers

Sources

containers-3.13.tbz
sha256=372df86e2a41e86c959c28a3392eb2ffd89754d1e5af2aaa09537654af57b1da
sha512=7d87d44065612095fa0342a9c95a2c4cfdf73d5af47c6fce24262cf2870c36dee70ebecd056113aa9c1643256bc032c08530f5083061c44602c0da5a132c2d6c

doc/containers/CCOrd/index.html

Module CCOrdSource

Order combinators

Comparisons

Sourcetype 'a t = 'a -> 'a -> int

Comparison (total ordering) between two elements, that returns an int.

Sourceval poly : 'a t

Polymorphic "magic" comparison. Use with care, as it will fail on some types.

  • since 3.6
Sourceval compare : 'a t

Polymorphic "magic" comparison.

  • deprecated

    since 3.6 in favor of poly. The reason is that compare is easily shadowed, can shadow other comparators, and is just generally not very descriptive.

Sourceval opp : 'a t -> 'a t

Opposite order. For example, opp cmp a b < 0 iff cmp b a > 0. This can be used to sort values in the opposite order, among other things.

Sourceval equiv : int -> int -> bool

Returns true iff the two comparison results are the same.

Sourceval int : int t
Sourceval string : string t
Sourceval bool : bool t
Sourceval float : float t

Lexicographic Combination

Sourceval (<?>) : 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))
Sourceval option : 'a t -> 'a option t

Comparison of optional values. None is smaller than any Some _.

  • since 0.15
Sourceval pair : 'a t -> 'b t -> ('a * 'b) t
Sourceval triple : 'a t -> 'b t -> 'c t -> ('a * 'b * 'c) t
Sourceval list : 'a t -> 'a list t

Lexicographic combination on lists.

Sourceval array : 'a t -> 'a array t
Sourceval 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.

Sourceval (>|=) : 'b t -> ('a -> 'b) -> 'a t

Infix equivalent of map.

Sourcemodule Infix : sig ... end
OCaml

Innovation. Community. Security.