Skip to content

Instantly share code, notes, and snippets.

@damirm
Last active August 29, 2015 14:11
Show Gist options
  • Save damirm/3ff78e8061a87f6ea689 to your computer and use it in GitHub Desktop.
Save damirm/3ff78e8061a87f6ea689 to your computer and use it in GitHub Desktop.
Sum function with carring
function sum(n) {
var self = sum;
if (typeof n === 'undefined') {
var result = self.numbers.reduce(function (prev, next) { return prev + next; }, 0);
self.numbers = [];
return result;
}
if ( ! self.numbers ) { self.numbers = [] };
self.numbers.push(n);
return self;
}
var sum = (function () {
var numbers = [];
return function sum(n) {
if (typeof n === 'undefined') {
var result = numbers.reduce(function(prev, next) { return prev + next; });
numbers = [];
return result;
}
numbers.push(n);
return sum;
};
})();
var sum = (function () {
var numbers = [];
return function (n) {
if (typeof n === 'undefined') {
var result = numbers.reduce(function(prev, next) { return prev + next; });
numbers = [];
return result;
}
numbers.push(n);
return arguments.callee;
};
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment