Published
Edited
Sep 26, 2021
1 fork
2 stars
Insert cell
Insert cell
memoizer = (memo, formula) => {
const recur = (n) => {
let result = memo[n]
if (typeof result !== "number") {
result = formula(recur, n)
memo[n] = result
}
return result
}
return recur
}
Insert cell
factorial = memoizer([1, 1], (recur, n) => n * recur(n - 1))
Insert cell
factorial(5)
Insert cell
Insert cell
fibonacci = memoizer([0, 1], (fib, n) => fib(n - 1) + fib(n - 2))
Insert cell
fibonacci(40)
Insert cell
function fib(n) {
return n < 2 ? n : fib(n -1) + fib(n - 2)
}
Insert cell
// fib(40)
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more