File: uncurry3.js

package info (click to toggle)
node-array-from 2.1.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 644 kB
  • sloc: makefile: 2
file content (35 lines) | stat: -rw-r--r-- 765 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
"use strict";

exports.__esModule = true;
/**
 * @module 1-liners/uncurry3
 *
 * @description
 *
 * Uncurry a function – collapse 3 lists of parameters into one.
 *
 * @example
 *
 *  import uncurry3 from '1-liners/uncurry3';
 *
 *  const f = (a) => (b) => (c) => a + b + c;
 *  const fβ = uncurry3(f);
 *  fβ(1, 2, 3);  // => 6
 *
 *  const g = (a) => (b) => (c, d) => a + b + c + d;
 *  const gβ = uncurry3(g);
 *  gβ(1, 2, 3, 4);  // => 10
 *
 */

exports["default"] = function (f) {
  return function (a, b) {
    for (var _len = arguments.length, rest = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
      rest[_key - 2] = arguments[_key];
    }

    return f(a)(b).apply(undefined, rest);
  };
};

module.exports = exports["default"];