const memo = (func) => {
const memo = {};
return index => {
console.log('memo[index]', memo[index]);
return memo[index] ??= func(index)
}
}
const fac = (num) => {
if (num < 2) {
return 1;
}
return fac(num-1) * num
}
const memoFac = memo(fac);
memoFac(3)
memoFac(3)