Skip to content

Instantly share code, notes, and snippets.

@ankitwww
Last active November 17, 2019 22:10
Show Gist options
  • Save ankitwww/0daf79c081f95dc7a9395f65af2ac2eb to your computer and use it in GitHub Desktop.
Save ankitwww/0daf79c081f95dc7a9395f65af2ac2eb to your computer and use it in GitHub Desktop.
"use strict";
// Quick Arguments Shape Adapters
function unary(fn) {
return function one(arg) {
return fn(arg);
};
}
function binary(fn) {
return function two(arg1, arg2) {
return fn(arg1, arg2);
};
}
function reverseArgs(fn) {
return function rev(...args) {
return fn(...args.reverse());
};
}
function f(...args) {
return args;
}
var unary_wrap = unary(f);
var binary_wrap = binary(f);
var reverse_wrap = reverseArgs(f);
console.log("unary:", unary_wrap(1, 2, 3, 4)); //[1]
console.log("binary:", binary_wrap(1, 2, 3, 4)); //[1,2]
console.log("reverse args:", reverse_wrap(1, 2, 3, 4)); //[4,3,2,1]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment