12345678910111213141516171819202122232425262728293031323334 |
- import _curry3 from "./internal/_curry3.js";
- /**
- * 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 =
- /*#__PURE__*/
- _curry3(function until(pred, fn, init) {
- var val = init;
- while (!pred(val)) {
- val = fn(val);
- }
- return val;
- });
- export default until;
|