Hyperlinkv0.8.0-beta.28

Filter

Filter.andLeftconsteffect/Filter.ts:665
<InputR, PassR, FailR>(right: Filter<InputR, PassR, FailR>): <
  InputL,
  PassL,
  FailL
>(
  left: Filter<InputL, PassL, FailL>
) => Filter<InputL & InputR, PassL, FailL | FailR>
<InputL, PassL, FailL, InputR, PassR, FailR>(
  left: Filter<InputL, PassL, FailL>,
  right: Filter<InputR, PassR, FailR>
): Filter<InputL & InputR, PassL, FailL | FailR>

Combines two filters but only returns the result of the left filter.

Example (Keeping the left filter result)

import { Filter } from "effect"

const positiveNumbers = Filter.fromPredicate((n: number) => n > 0)
const evenNumbers = Filter.fromPredicate((n: number) => n % 2 === 0)

const positiveEven = Filter.andLeft(positiveNumbers, evenNumbers)
combinators
Source effect/Filter.ts:66514 lines
export const andLeft: {
  <InputR, PassR, FailR>(
    right: Filter<InputR, PassR, FailR>
  ): <InputL, PassL, FailL>(
    left: Filter<InputL, PassL, FailL>
  ) => Filter<InputL & InputR, PassL, FailL | FailR>
  <InputL, PassL, FailL, InputR, PassR, FailR>(
    left: Filter<InputL, PassL, FailL>,
    right: Filter<InputR, PassR, FailR>
  ): Filter<InputL & InputR, PassL, FailL | FailR>
} = dual(2, <InputL, PassL, FailL, InputR, PassR, FailR>(
  left: Filter<InputL, PassL, FailL>,
  right: Filter<InputR, PassR, FailR>
): Filter<InputL & InputR, PassL, FailL | FailR> => zipWith(left, right, (leftResult) => leftResult))