function flip(fn) { return function flipped(arg1,arg2,...args){ return fn(arg2,arg1,...args); }}function f(...args) { return args;}let g = flip(f);g(1,2,3,4); // [2,1,3,4]
آداپتور reverse
ترتیب ورودیهای تابع مورد نظر را برعکس میکند.
function reverseArgs(fn) { return function reversed(...args){ return fn(...args.reverse()); }}function f(...args) { return args;}let g = reverseArgs(f);g(1,2,3,4); // [4,3,2,1]
آداپتور spread
ورودیهای تابع مورد نظر را تبدیل به یک لیست میکند.
function spreadArgs(fn) { return function spread(args){ return fn(...args); }}function f(x,y,z,w) { return x + y + z + w;}let g = spreadArgs(f);g([1,2,3,4]); // 10
آداپتور
ورودیهای تابع مورد نظر را تبدیل به یک لیست میکند.