UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

35 lines 885 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MonadRec = exports.ChainRec = exports.chainRec = void 0; const tslib_1 = require("tslib"); const E = (0, tslib_1.__importStar)(require("fp-ts/Either")); const S = (0, tslib_1.__importStar)(require("fp-ts/State")); /** * @since 0.9.2 * @category Combinator */ 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]]; }; exports.chainRec = chainRec; /** * @since 0.9.2 * @category Instance */ exports.ChainRec = { chainRec: exports.chainRec, }; /** * @since 0.9.2 * @category Instance */ exports.MonadRec = { ...S.Monad, chainRec: exports.chainRec, }; (0, tslib_1.__exportStar)(require("fp-ts/State"), exports); //# sourceMappingURL=State.js.map