JSFiddle - React, Tailwind, and code Playground
by kman007_us
JavaScript
var fastFibonacci, fibonacci, memoized, quickFibonacci;
fibonacci = function(n) {
if (n < 2) {
return n;
} else {
return fibonacci(n - 2) + fibonacci(n - 1);
}
};
console.log(fibonacci(4));
memoized = function(fn) {
return (function(lookupTable, key, value) {
return function() {
key = JSON.stringify(arguments);
console.log("memoized looking up key...");
return lookupTable[key] || (lookupTable[key] = fn.apply(this, arguments));
};
})({}, void 0, void 0);
};
fastFibonacci = memoized(function(n) {
if (n < 2) {
return n;
} else {
return fastFibonacci(n - 2) + fastFibonacci(n - 1);
}
});
console.time('fastFib');
console.log("fastFibonacci(45):", fastFibonacci(45));
console.timeEnd('fastFib');
quickFibonacci = memoized(fibonacci); // only the first call uses `memoized`!
console.time('quickFib');
console.log('quickFibonacci(35):', quickFibonacci(35));
console.timeEnd('quickFib');