getCurriedFunc

by shan10213223

JavaScript

function func() {
	const args = Array.from(arguments);
  console.log('type: ', typeof args);
	return function curried(arg2) {
  	/* console.log('arg2: ', arg2, 'args: ', args);
  	    let res = arg2;
  	    for (let i = 0; i < args.length; i++) {
  	      console.log(' res: ', res);
  	      const cur = args[i];
  	      res = cur(res);
  	    }
  	    
  	    return res; */
  	return args.reduce((acc, cur) => {
      return cur(acc);
    }, arg2);
  }
}

function add2(val) {
	const res = val + 2;
	console.log('add2: ', res)
	return res;
}
function multiply3(val) {
	const res = val * 3;
  console.log('mutiply3: ', res);
	return res;
}

console.log(func(add2, multiply3)(2));