Hyperlinkv0.8.0-beta.28

Order

Order.Numberconsteffect/Order.ts:177
(self: number, that: number): Ordering

Order instance for numbers that compares them numerically.

When to use

Use when you need numeric ordering for numbers.

Details

0 is considered equal to -0. All NaN values are considered equal to each other, and any NaN is considered less than any non-NaN number. All other values use standard numeric comparison.

Example (Ordering numbers)

import { Order } from "effect"

console.log(Order.Number(1, 1)) // 0
console.log(Order.Number(1, 2)) // -1
console.log(Order.Number(2, 1)) // 1

console.log(Order.Number(0, -0)) // 0
console.log(Order.Number(NaN, 1)) // -1
Source effect/Order.ts:1776 lines
export const Number: Order<number> = make((self, that) => {
  if (globalThis.Number.isNaN(self) && globalThis.Number.isNaN(that)) return 0
  if (globalThis.Number.isNaN(self)) return -1 // NaN < any number
  if (globalThis.Number.isNaN(that)) return 1 // any number > NaN
  return self < that ? -1 : 1
})
Referenced by 9 symbols