Order<T> class
abstract
The Order
type class is used to define a total ordering
on some type A
.
An order is defined by a relation <=, which obeys the following laws:
- either
x <= y
ory <= x
(totality) - if
x <= y
andy <= x
, thenx == y
(antisymmetry) - if
x <= y
andy <= z
, thenx <= z
(transitivity)
The truth table for compare is defined as follows:
x <= y | x >= y | int | |
---|---|---|---|
true | true | = 0 | (corresponds to x == y) |
true | false | < 0 | (corresponds to x < y) |
false | true | > 0 | (corresponds to x > y) |
By the totality law, x <= y
and y <= x
cannot be both false.
Constructors
- Order()
-
const
Properties
Methods
-
between(
T min, T max, T value) → bool -
Test whether
value
is betweenmin
andmax
(inclusive). -
clamp(
T min, T max, T value) → T -
Clamp
value
betweenmin
andmax
. -
compare(
T x, T y) → int -
Result of comparing
x
withy
. Returns an Int whose sign is: -
contramap<
A> (T map(A)) → Order< A> -
Return an Order instance based on a parameter of type
T
extracted from a classA
. -
eqv(
T x, T y) → bool -
gt(
T x, T y) → bool -
gteqv(
T x, T y) → bool -
lt(
T x, T y) → bool -
lteqv(
T x, T y) → bool -
max(
T x, T y) → T -
If
x > y
, returnx
, else returny
. -
min(
T x, T y) → T -
If
x < y
, returnx
, else returny
. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Properties
Static Methods
-
allEqual<
A> () → Order< A> -
An
Order
instance that considers allA
instances to be equal (compare
always returns0
). -
by<
A, B> (B f(A a), Order< B> ord) → Order<A> -
Convert an implicit
Order<B>
to anOrder<A>
using the given functionf
. -
from<
A> (int f(A a1, A a2)) → Order< A> -
Define an
Order<A>
using the given functionf
. -
fromLessThan<
A> (bool f(A a1, A a2)) → Order< A> -
Define an
Order<A>
using the given 'less than' functionf
. -
whenEqual<
A> (Order< A> first, Order<A> second) → Order<A> -
Returns a new
Order<A>
instance that first compares by the firstOrder
instance and uses the secondOrder
instance to "break ties".