Quick actions

cmd+k|ctrl+k

Navigation

Languages

CurryN

Snippet info

Language

JavaScript

Visibility

public

Author

christian.lohr

Created

2016-04-27T02:56:07Z

Updated

2016-04-28T14:17:50Z

'use strict';

const curry = (fx) => {
  const arity = fx.length;
  return function f1() {
    const args = [...arguments];
    if (args.length >= arity) {
      return fx.apply(null, args);
    } else {
      return function f2() {
        const args2 = [...arguments];
        return f1.apply(null, args.concat(args2)); 
      }
    }
  };
};

const add = curry((x, y, z) => x + y + z);
const add2 = add(2);
console.log(add2(4)(4));
INFO