sum.js 779 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/usr/bin/env node
  2. 'use strict';
  3. var ArgumentParser = require('../lib/argparse').ArgumentParser;
  4. var parser = new ArgumentParser({ description: 'Process some integers.' });
  5. function sum(arr) {
  6. return arr.reduce(function (a, b) {
  7. return a + b;
  8. }, 0);
  9. }
  10. function max(arr) {
  11. return Math.max.apply(Math, arr);
  12. }
  13. parser.addArgument(['integers'], {
  14. metavar: 'N',
  15. type: 'int',
  16. nargs: '+',
  17. help: 'an integer for the accumulator'
  18. });
  19. parser.addArgument(['--sum'], {
  20. dest: 'accumulate',
  21. action: 'storeConst',
  22. constant: sum,
  23. defaultValue: max,
  24. help: 'sum the integers (default: find the max)'
  25. });
  26. var args = parser.parseArgs('--sum 1 2 -1'.split(' '));
  27. console.log(args.accumulate(args.integers));