Package: effect
Module: Equivalence
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
0 with index 0true only if all corresponding elements are equivalentExample (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
TupleRecordSignature
declare const Array: <A>(item: Equivalence<A>) => Equivalence<ReadonlyArray<A>>
Since v4.0.0