Skip to main content
Module

x/ramda/until.js

:ram: Practical functional Javascript
Very Popular
Go to Latest
File
import _curry3 from './internal/_curry3';

/** * Takes a predicate, a transformation function, and an initial value, * and returns a value of the same type as the initial value. * It does so by applying the transformation until the predicate is satisfied, * at which point it returns the satisfactory value. * * @func * @memberOf R * @since v0.20.0 * @category Logic * @sig (a -> Boolean) -> (a -> a) -> a -> a * @param {Function} pred A predicate function * @param {Function} fn The iterator function * @param {*} init Initial value * @return {*} Final value that satisfies predicate * @example * * R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128 */var until = _curry3(function until(pred, fn, init) { var val = init; while (!pred(val)) { val = fn(val); } return val;});export default until;