Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

and a readme with an example too

  • Loading branch information...
commit 6deab7c9fa35aa9465c541d93a8dc2bfd94e809a 1 parent 8d5166a
James Halliday authored
Showing with 45 additions and 0 deletions.
  1. +40 −0 README.markdown
  2. +5 −0 examples/z.js
40 README.markdown
View
@@ -0,0 +1,40 @@
+ap
+==
+
+`Function.prototype.bind` sets `this` which is super annoying if you just want
+to do currying over arguments while passing `this` through.
+
+Instead you can do:
+
+ var ap = require('ap');
+ var z = ap([3], function (x, y) {
+ return this.z * (x * 2 + y);
+ }).call({ z : 10 }, 4);
+ console.log(z);
+***
+ 100
+
+methods
+=======
+
+ap(args, fn)
+------------
+
+Fill in the arguments `args` at the beginning of `fn`'s arguments list.
+
+pa(args, fn)
+------------
+
+Fill in the arguments `args` at the end of `fn`'s arguments list.
+
+apa(left, right, fn)
+--------------------
+
+Fill in `left` arguments starting from the beginning of `fn`'s argument list and
+`right` arguments starting from the end.
+
+curry(fn, args[0], args[1], ...)
+--------------------------------
+
+Fill in `fn`'s arguments with `args` from the beginning of `fn`'s arguments
+list.
5 examples/z.js
View
@@ -0,0 +1,5 @@
+var ap = require('ap');
+var z = ap([3], function (x, y) {
+ return this.z * (x * 2 + y);
+}).call({ z : 10 }, 4);
+console.log(z);
Please sign in to comment.
Something went wrong with that request. Please try again.