function fib(n) {
if (n < 1) return 0
if (n < 3) return 1
return fib(n-1) + fib(n-2)
}
// decorator function
function memoize(func) {
const memo = new Map()
return function(n) {
if (!memo.has(n)) {
memo.set(n, func(n))
}
return memo.get(n)
}
}
// decorate fib()
fib = memoize(fib)
for (let i = 0; i < 12; i++) {
console.log(`fib(${i}) = ${fib(i)}`)
}
To embed this project on your website, copy the following code and paste it into your website's HTML: