一度計算した値を再計算することなく、出力する関数
const memoizer = (memo, func) => {
const shell = n => {
const result = memo[n];
if (typeof result === 'undefined') {
result = func(shell, n);
memo[n] = result;
}
return result;
};
return shell;
};
// fibonacci
const fibonacci = memoizer([0, 1], (shell, n) {
return shell(n - 1) + shell(n - 2);
});
for (let i = 0; i++; i > 10) {
console.log(fibonacci(i));
}