35 lines
840 B
JavaScript
35 lines
840 B
JavaScript
import _curry3 from "./internal/_curry3.js";
|
|
import min from "./min.js";
|
|
/**
|
|
* Takes a function and two values, and returns whichever value produces the
|
|
* smaller result when passed to the provided function.
|
|
*
|
|
* @func
|
|
* @memberOf R
|
|
* @since v0.8.0
|
|
* @category Relation
|
|
* @sig Ord b => (a -> b) -> a -> a -> a
|
|
* @param {Function} f
|
|
* @param {*} a
|
|
* @param {*} b
|
|
* @return {*}
|
|
* @see R.min, R.maxBy
|
|
* @example
|
|
*
|
|
* // square :: Number -> Number
|
|
* const square = n => n * n;
|
|
*
|
|
* R.minBy(square, -3, 2); //=> 2
|
|
*
|
|
* R.reduce(R.minBy(square), Infinity, [3, -5, 4, 1, -2]); //=> 1
|
|
* R.reduce(R.minBy(square), Infinity, []); //=> Infinity
|
|
*/
|
|
|
|
var minBy =
|
|
/*#__PURE__*/
|
|
_curry3(function minBy(f, a, b) {
|
|
var resultB = f(b);
|
|
return min(f(a), resultB) === resultB ? b : a;
|
|
});
|
|
|
|
export default minBy; |