Memoizer JS The Good Parts

by Matthew Vasallo

JavaScript

var memoizerBig = 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 memoizer = function (memo, formula) {
    var recur = function (n) {
        var result = memo[n];
                    console.log(n);
        if (typeof result !== 'number') {
            result = formula(recur, n);
            console.log(result);
            memo[n] = result;
        }
        return result;
    };

    return recur;
};

var factorial = memoizer([1, 1], function (recur, n) {
    return n * recur(n-1);
});

console.log(factorial(5));