swc/crates/swc_bundler/tests/.cache/deno/4c2dca625f369b898974fdb3ea469f42d4dc7e64.ts
2021-11-09 20:42:49 +09:00

34 lines
907 B
TypeScript

// Loaded from https://deno.land/x/ramda@v0.27.2/source/until.js
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 = _curry3(function until(pred, fn, init) {
var val = init;
while (!pred(val)) {
val = fn(val);
}
return val;
});
export default until;