UNPKG

rubico

Version:

[a]synchronous functional programming

43 lines (38 loc) 809 B
const __ = require('./placeholder') // argument resolver for curry2 const curry2ResolveArg0 = ( baseFunc, arg1, ) => function arg0Resolver(arg0) { return baseFunc(arg0, arg1) } // argument resolver for curry2 const curry2ResolveArg1 = ( baseFunc, arg0, ) => function arg1Resolver(arg1) { return baseFunc(arg0, arg1) } /** * @name curry2 * * @synopsis * ```coffeescript [specscript] * __ = Symbol('placeholder') * * curry2( * baseFunc function, * arg0 __|any, * arg1 __|any, * ) -> function * ``` * * @description * Curry a binary function. * * Note: exactly one argument must be the placeholder */ const curry2 = function (baseFunc, arg0, arg1) { return arg0 == __ ? curry2ResolveArg0(baseFunc, arg1) : curry2ResolveArg1(baseFunc, arg0) } module.exports = curry2