mirror of
https://github.com/swc-project/swc.git
synced 2024-12-25 06:36:08 +03:00
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
|
// Loaded from https://deno.land/x/ramda@v0.27.2/source/binary.js
|
||
|
|
||
|
|
||
|
import _curry1 from './internal/_curry1.js';
|
||
|
import nAry from './nAry.js';
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Wraps a function of any arity (including nullary) in a function that accepts
|
||
|
* exactly 2 parameters. Any extraneous parameters will not be passed to the
|
||
|
* supplied function.
|
||
|
*
|
||
|
* @func
|
||
|
* @memberOf R
|
||
|
* @since v0.2.0
|
||
|
* @category Function
|
||
|
* @sig (a -> b -> c -> ... -> z) -> ((a, b) -> z)
|
||
|
* @param {Function} fn The function to wrap.
|
||
|
* @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of
|
||
|
* arity 2.
|
||
|
* @see R.nAry, R.unary
|
||
|
* @example
|
||
|
*
|
||
|
* const takesThreeArgs = function(a, b, c) {
|
||
|
* return [a, b, c];
|
||
|
* };
|
||
|
* takesThreeArgs.length; //=> 3
|
||
|
* takesThreeArgs(1, 2, 3); //=> [1, 2, 3]
|
||
|
*
|
||
|
* const takesTwoArgs = R.binary(takesThreeArgs);
|
||
|
* takesTwoArgs.length; //=> 2
|
||
|
* // Only 2 arguments are passed to the wrapped function
|
||
|
* takesTwoArgs(1, 2, 3); //=> [1, 2, undefined]
|
||
|
* @symb R.binary(f)(a, b, c) = f(a, b)
|
||
|
*/
|
||
|
var binary = _curry1(function binary(fn) {
|
||
|
return nAry(2, fn);
|
||
|
});
|
||
|
export default binary;
|