Public
Edited
May 17
1 star
Insert cell
Insert cell
factorialBroken = (n) => {
if (n === 0 || n === 1) return 1;
return n * factorialBroken(n - 1);
}
Insert cell
Insert cell
function factorial(n) {
if (n === 0 || n === 1) return 1;
return n * factorial(n - 1);
}
Insert cell
d3.range(10).map(factorial)
Insert cell
Insert cell
function female(n) {
if (n === 0) return 1;
return n - male(female(n - 1));
}
Insert cell
function male(n) {
if (n === 0) return 0;
return n - female(male(n - 1))
}
Insert cell
Insert cell
class Hofstadter {
static female(n) {
if (n === 0) return 1;
return n - Hofstadter.male(Hofstadter.female(n - 1));
}
static male(n) {
if (n === 0) return 0;
return n - Hofstadter.female(Hofstadter.male(n - 1));
}
}
Insert cell
d3.range(10).map(Hofstadter.female)
Insert cell
d3.range(10).map(Hofstadter.male)
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