memoize-addition

by upigilam

JavaScript

function mem2(fun) {
  var cache = [];
  return function(...args) {
  	var idx = args.toString();
  	if (!cache[idx]) {
    	cache[idx] = fun(...args);
			console.log('caching :: ', cache[idx]);
    }
    console.log('already cached :: ', cache[idx]);
    return cache[idx];
  };
}

function add(n, o) {
	return (n+o);
}

var mem_add = mem2(add);
console.log('add:: ',add(1,2));
console.log('mem add:: ',mem_add(1,2));
/* console.log('mem add:: ',mem_add(2,3)); */