Hyperlinkv0.8.0-beta.28

Tuple

Tuple.makeOrderconsteffect/Tuple.ts:580
<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])) // 0
Source effect/Tuple.ts:5801 lines
export const makeOrder = order.Tuple