UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

30 lines 576 B
import * as E from 'fp-ts/Either'; import * as S from 'fp-ts/State'; /** * @since 0.9.2 * @category Combinator */ export const chainRec = (f) => (value) => (s) => { let result = f(value)(s); while (E.isLeft(result[0])) { result = f(value)(result[1]); } return [result[0].right, result[1]]; }; /** * @since 0.9.2 * @category Instance */ export const ChainRec = { chainRec, }; /** * @since 0.9.2 * @category Instance */ export const MonadRec = { ...S.Monad, chainRec, }; export * from 'fp-ts/State'; //# sourceMappingURL=State.js.map