UNPKG

foop

Version:

interfaces that describe their intentions.

42 lines (39 loc) 2.88 kB
var argumentor = require('../cast/argumentsToArray') var curryN = require('./curry') var nth = require('./nth') /** * @desc Returns a function which returns its nth argument. * @memberOf fp * @since 5.0.0-beta.6 * * @param {Number} n arg to get * @return {Function} * @see deps/argumentor * * @curried 1 * @tests fp/nthArg * * @func * @fork v0.9.0 * @category Function * @sig Number -> *... -> * * * @symb nthArg(-1)(a, b, c) = c * @symb nthArg(0)(a, b, c) = a * @symb nthArg(1)(a, b, c) = b * * @example * * nthArg(1)('a', 'b', 'c') //=> 'b' * nthArg(-1)('a', 'b', 'c') //=> 'c' * */ var nthArg = function(n) { var arity = n < 0 ? 1 : n + 1 return curryN(arity, function() { // return nth(n, argumentor.apply(null, arguments)) return nth(argumentor.apply(null, arguments), n) }) } module.exports = nthArg //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRoQXJnLmpzIiwic291cmNlcyI6WyJudGhBcmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXJndW1lbnRvciA9IHJlcXVpcmUoJy4uL2Nhc3QvYXJndW1lbnRzVG9BcnJheScpXG5jb25zdCBjdXJyeU4gPSByZXF1aXJlKCcuL2N1cnJ5JylcbmNvbnN0IG50aCA9IHJlcXVpcmUoJy4vbnRoJylcblxuLyoqXG4gKiBAZGVzYyBSZXR1cm5zIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBpdHMgbnRoIGFyZ3VtZW50LlxuICogQG1lbWJlck9mIGZwXG4gKiBAc2luY2UgNS4wLjAtYmV0YS42XG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IG4gYXJnIHRvIGdldFxuICogQHJldHVybiB7RnVuY3Rpb259XG4gKiBAc2VlIGRlcHMvYXJndW1lbnRvclxuICpcbiAqIEBjdXJyaWVkIDFcbiAqIEB0ZXN0cyBmcC9udGhBcmdcbiAqXG4gKiBAZnVuY1xuICogQGZvcmsgdjAuOS4wXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBzaWcgTnVtYmVyIC0+ICouLi4gLT4gKlxuICpcbiAqIEBzeW1iIG50aEFyZygtMSkoYSwgYiwgYykgPSBjXG4gKiBAc3ltYiBudGhBcmcoMCkoYSwgYiwgYykgPSBhXG4gKiBAc3ltYiBudGhBcmcoMSkoYSwgYiwgYykgPSBiXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICAgIG50aEFyZygxKSgnYScsICdiJywgJ2MnKSAgLy89PiAnYidcbiAqICAgICAgbnRoQXJnKC0xKSgnYScsICdiJywgJ2MnKSAvLz0+ICdjJ1xuICpcbiAqL1xuY29uc3QgbnRoQXJnID0gZnVuY3Rpb24obikge1xuICBjb25zdCBhcml0eSA9IG4gPCAwID8gMSA6IG4gKyAxXG4gIHJldHVybiBjdXJyeU4oYXJpdHksIGZ1bmN0aW9uKCkge1xuICAgIC8vIHJldHVybiBudGgobiwgYXJndW1lbnRvci5hcHBseShudWxsLCBhcmd1bWVudHMpKVxuICAgIHJldHVybiBudGgoYXJndW1lbnRvci5hcHBseShudWxsLCBhcmd1bWVudHMpLCBuKVxuICB9KVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG50aEFyZ1xuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsMEJBQTBCLENBQUM7QUFDdERBLEdBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztBQUNqQ0EsR0FBSyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZCNUJBLEdBQUssQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLEVBQUU7RUFDekJBLEdBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7RUFDL0IsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVc7O0lBRTlCLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztHQUNqRCxDQUFDO0NBQ0g7O0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNOyJ9