Skip to content

Instantly share code, notes, and snippets.

@alebian
Created January 18, 2017 18:37
Show Gist options
  • Save alebian/54651716caaf58accb66930b1c490bee to your computer and use it in GitHub Desktop.
Save alebian/54651716caaf58accb66930b1c490bee to your computer and use it in GitHub Desktop.
Javascript
// Example taken from Javascript The Good Parts
var memoizer = function(memo, formula) {
var recur = function(n) {
var result = memo[n];
if (typeof result !== 'number') {
result = formula(recur, n);
memo[n] = result;
}
return result;
};
return recur;
};
var fibonacci = memoizer([0, 1], function(recur, n) {
return recur(n - 1) + recur(n - 2);
});
var factorial = memoizer([1, 1], function(recur, n) {
return n * recur(n - 1);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment