UNPKG

fp-ts-std

Version:

The missing pseudo-standard library for fp-ts.

9 lines (8 loc) 417 B
import * as IO from "fp-ts/IO"; import * as Rand from "fp-ts/Random"; import * as RA from "fp-ts/ReadonlyArray"; import { flow, pipe } from "fp-ts/function"; import { extractAt } from "./Array"; import { decrement } from "./Number"; import { unsafeUnwrap } from "./Option"; export const randomExtract = (xs) => pipe(Rand.randomInt(0, pipe(xs, RA.size, decrement)), IO.map(flow(i => extractAt(i)(xs), unsafeUnwrap)));