<A>(a: A): (self: Iterable<A>) => boolean
<A>(self: Iterable<A>, a: A): booleanChecks whether an array contains a value, using Equal.equivalence() for
comparison.
When to use
Use to check whether an iterable contains a value using Effect's default equality instead of providing a comparison function.
Example (Checking membership)
import { Array, pipe } from "effect"
console.log(pipe(["a", "b", "c", "d"], Array.contains("c"))) // trueexport const const contains: {
<A>(a: A): (self: Iterable<A>) => boolean
<A>(self: Iterable<A>, a: A): boolean
}
Checks whether an array contains a value, using Equal.equivalence() for
comparison.
When to use
Use to check whether an iterable contains a value using Effect's default
equality instead of providing a comparison function.
Example (Checking membership)
import { Array, pipe } from "effect"
console.log(pipe(["a", "b", "c", "d"], Array.contains("c"))) // true
contains: {
<function (type parameter) A in <A>(a: A): (self: Iterable<A>) => booleanA>(a: Aa: function (type parameter) A in <A>(a: A): (self: Iterable<A>) => booleanA): (self: Iterable<A>self: interface Iterable<T, TReturn = any, TNext = any>Iterable<function (type parameter) A in <A>(a: A): (self: Iterable<A>) => booleanA>) => boolean
<function (type parameter) A in <A>(self: Iterable<A>, a: A): booleanA>(self: Iterable<A>self: interface Iterable<T, TReturn = any, TNext = any>Iterable<function (type parameter) A in <A>(self: Iterable<A>, a: A): booleanA>, a: Aa: function (type parameter) A in <A>(self: Iterable<A>, a: A): booleanA): boolean
} = const containsWith: <unknown>(
isEquivalent: (
self: unknown,
that: unknown
) => boolean
) => {
(a: unknown): (
self: Iterable<unknown>
) => boolean
(self: Iterable<unknown>, a: unknown): boolean
}
Returns a membership-test function using a custom equivalence.
When to use
Use when checking membership with caller-provided equality instead of
Equal.equivalence().
Example (Checking with custom equality)
import { Array, pipe } from "effect"
const containsNumber = Array.containsWith((a: number, b: number) => a === b)
console.log(pipe([1, 2, 3, 4], containsNumber(3))) // true
containsWith(import EqualEqual.const asEquivalence: <
A
>() => Equivalence<A>
Wraps
equals
as an Equivalence<A>.
When to use
Use when you want to pass Equal.equals to APIs that require an
Equivalence.
Details
- Returns a function
(a: A, b: A) => boolean that delegates to
equals
.
- Pure; allocates a thin wrapper on each call.
Example (Deduplicating with Equal semantics)
import { Array, Equal } from "effect"
const eq = Equal.asEquivalence<number>()
const result = Array.dedupeWith([1, 2, 2, 3, 1], eq)
console.log(result) // [1, 2, 3]
asEquivalence())