Hyperlinkv0.8.0-beta.28

Chunk

Chunk.intersectionconsteffect/Chunk.ts:1348
<A>(that: Chunk<A>): <B>(self: Chunk<B>) => Chunk<A & B>
<A, B>(self: Chunk<A>, that: Chunk<B>): Chunk<A & B>

Creates a Chunk of values that are included in both chunks.

Details

The order and references of result values are determined by the first chunk.

Example (Intersecting chunks)

import { Chunk } from "effect"

const chunk1 = Chunk.make(1, 2, 3, 4)
const chunk2 = Chunk.make(3, 4, 5, 6)
const result = Chunk.intersection(chunk1, chunk2)
console.log(Chunk.toArray(result)) // [3, 4]

// With strings
const words1 = Chunk.make("hello", "world", "foo")
const words2 = Chunk.make("world", "bar", "foo")
console.log(Chunk.toArray(Chunk.intersection(words1, words2))) // ["world", "foo"]

// No intersection
const chunk3 = Chunk.make(1, 2)
const chunk4 = Chunk.make(3, 4)
console.log(Chunk.toArray(Chunk.intersection(chunk3, chunk4))) // []
elements
Source effect/Chunk.ts:13488 lines
export const intersection: {
  <A>(that: Chunk<A>): <B>(self: Chunk<B>) => Chunk<A & B>
  <A, B>(self: Chunk<A>, that: Chunk<B>): Chunk<A & B>
} = dual(
  2,
  <A, B>(self: Chunk<A>, that: Chunk<B>): Chunk<A & B> =>
    fromArrayUnsafe(RA.intersection(toReadonlyArray(self), toReadonlyArray(that)))
)
Referenced by 1 symbols