Explorar o código

added curry function

mightyplow %!s(int64=8) %!d(string=hai) anos
pai
achega
bca5f5aab4
Modificáronse 1 ficheiros con 15 adicións e 1 borrados
  1. 15 1
      lib/function.js

+ 15 - 1
lib/function.js

@@ -8,7 +8,21 @@ const argsToArray = fn => {
     }
 }
 
+const curry = fn => {
+    return function curried () {
+        const that = this,
+            args = Array.prototype.slice.call(arguments)
+
+        if (args.length < fn.length) {
+            return curried.bind.apply(partial, [that].concat(args))
+        } else {
+            return fn.apply(that, args)
+        }
+    }
+}
+
 module.exports = {
     argsAsArray: argsToArray,
-    combine: argsToArray(fns => fns.reverse().reduce((fnc, fn) => val => fnc(fn(val))))
+    combine: argsToArray(fns => fns.reverse().reduce((fnc, fn) => val => fnc(fn(val)))),
+    curry: curry
 }