<A>(O: Order<A>): {
(that: A): (self: A) => boolean
(self: A, that: A): boolean
}Checks whether one value is strictly less than another according to the given order.
When to use
Use when you need a boolean less-than predicate using an Order.
Details
Returns true if the order returns -1, meaning the first value is less
than the second. Equal or greater values return false.
Example (Checking less-than comparisons)
import { Order } from "effect"
const isLessThanNumber = Order.isLessThan(Order.Number)
console.log(isLessThanNumber(1, 2)) // true
console.log(isLessThanNumber(2, 1)) // false
console.log(isLessThanNumber(1, 1)) // falseexport const const isLessThan: <A>(O: Order<A>) => {
(that: A): (self: A) => boolean
(self: A, that: A): boolean
}
Checks whether one value is strictly less than another according to the given order.
When to use
Use when you need a boolean less-than predicate using an Order.
Details
Returns true if the order returns -1, meaning the first value is less
than the second. Equal or greater values return false.
Example (Checking less-than comparisons)
import { Order } from "effect"
const isLessThanNumber = Order.isLessThan(Order.Number)
console.log(isLessThanNumber(1, 2)) // true
console.log(isLessThanNumber(2, 1)) // false
console.log(isLessThanNumber(1, 1)) // false
isLessThan = <function (type parameter) A in <A>(O: Order<A>): {
(that: A): (self: A) => boolean;
(self: A, that: A): boolean;
}
A>(type O: Order<A>O: interface Order<in A>Represents a total ordering for values of type A.
When to use
Use when you need to define how values of a type are compared.
Details
An order returns -1 when the first value is less than the second, 0 when
the values are equal according to this ordering, and 1 when the first value
is greater than the second. It must satisfy total ordering laws: totality,
antisymmetry, and transitivity.
Example (Defining a custom Order)
import { Order } from "effect"
const byAge: Order.Order<{ name: string; age: number }> = (self, that) => {
if (self.age < that.age) return -1
if (self.age > that.age) return 1
return 0
}
const person1 = { name: "Alice", age: 30 }
const person2 = { name: "Bob", age: 25 }
console.log(byAge(person1, person2)) // 1
Order<function (type parameter) A in <A>(O: Order<A>): {
(that: A): (self: A) => boolean;
(self: A, that: A): boolean;
}
A>): {
(that: Athat: function (type parameter) A in <A>(O: Order<A>): {
(that: A): (self: A) => boolean;
(self: A, that: A): boolean;
}
A): (self: Aself: function (type parameter) A in <A>(O: Order<A>): {
(that: A): (self: A) => boolean;
(self: A, that: A): boolean;
}
A) => boolean
(self: Aself: function (type parameter) A in <A>(O: Order<A>): {
(that: A): (self: A) => boolean;
(self: A, that: A): boolean;
}
A, that: Athat: function (type parameter) A in <A>(O: Order<A>): {
(that: A): (self: A) => boolean;
(self: A, that: A): boolean;
}
A): boolean
} => import dualdual(2, (self: Aself: function (type parameter) A in <A>(O: Order<A>): {
(that: A): (self: A) => boolean;
(self: A, that: A): boolean;
}
A, that: Athat: function (type parameter) A in <A>(O: Order<A>): {
(that: A): (self: A) => boolean;
(self: A, that: A): boolean;
}
A) => type O: Order<A>O(self: Aself, that: Athat) === -1)