effect-io-ai

Package: effect
Module: Equivalence

Equivalence.Array

Creates an equivalence for arrays where all elements are compared using the same equivalence.

When to use

Use when you need to compare arrays with one equivalence for every element.

Details

Example (Comparing number arrays)

import { Equivalence } from "effect"

const numberArrayEq = Equivalence.Array(Equivalence.strictEqual<number>())

console.log(numberArrayEq([1, 2, 3], [1, 2, 3])) // true
console.log(numberArrayEq([1, 2, 3], [1, 2, 4])) // false
console.log(numberArrayEq([1, 2], [1, 2, 3])) // false (different length)

Example (Case-insensitive string array)

import { Equivalence } from "effect"

const caseInsensitive = Equivalence.mapInput(
  Equivalence.strictEqual<string>(),
  (s: string) => s.toLowerCase()
)
const stringArrayEq = Equivalence.Array(caseInsensitive)

console.log(stringArrayEq(["Hello", "World"], ["HELLO", "WORLD"])) // true
console.log(stringArrayEq(["Hello"], ["Hi"])) // false
console.log(stringArrayEq([], [])) // true (empty arrays)

See

Signature

declare const Array: <A>(item: Equivalence<A>) => Equivalence<ReadonlyArray<A>>

Source

Since v4.0.0