<const Elements extends ReadonlyArray<order.Order<any>>>(
elements: Elements
): order.Order<{
readonly [I in keyof Elements]: [Elements[I]] extends [
order.Order<infer A>
]
? A
: never
}>Creates an Order for tuples by comparing corresponding elements using the
provided per-position Orders. Elements are compared left-to-right; the
first non-zero comparison determines the result.
When to use
Use when you need to sort fixed-position arrays lexicographically, with each position using its own ordering rule.
Details
This is an alias of Order.Tuple.
Example (Ordering tuples)
import { Number, String, Tuple } from "effect"
const ord = Tuple.makeOrder([String.Order, Number.Order])
console.log(ord(["Alice", 30], ["Bob", 25])) // -1
console.log(ord(["Alice", 30], ["Alice", 30])) // 0export const const makeOrder: <
Elements extends ReadonlyArray<Order<any>>
>(
elements: Elements
) => Order<{
readonly [I in keyof Elements]: [
Elements[I]
] extends [Order<infer A>]
? A
: never
}>
Creates an Order for tuples by comparing corresponding elements using the
provided per-position Orders. Elements are compared left-to-right; the
first non-zero comparison determines the result.
When to use
Use when you need to sort fixed-position arrays lexicographically, with each
position using its own ordering rule.
Details
This is an alias of Order.Tuple.
Example (Ordering tuples)
import { Number, String, Tuple } from "effect"
const ord = Tuple.makeOrder([String.Order, Number.Order])
console.log(ord(["Alice", 30], ["Bob", 25])) // -1
console.log(ord(["Alice", 30], ["Alice", 30])) // 0
makeOrder = import orderorder.Tuple