• Jump To … +
    Either.js List.js Maybe.js Set.js Stream.js Thunk.js Tuple.js boolean.js char.js base.js extra.js fold.js map.js zipWith.js collection.js control.js curried.js eq.js floating.js fractional.js function.js integral.js match.js num.js numeric.js object.js ord.js realfrac.js register.js string.js type.js nodash.js
  • numeric.js

  • ¶
    /* vim: set et sw=2 ts=2: */
    'use strict';
    
    module.exports = function () {
    
      var Nodash = this;
    
      return {
        
        gcd: function (a, b) {
          var c;
          while (b !== 0) {
            c = Nodash.rem(a, b);
            a = b;
            b = c;
          }
          return a;
        },
    
        lcm: function (a, b) {
          if (a === 0 || b === 0) {
            return 0;
          }
          return Math.abs(Nodash.quot(a, Nodash.gcd(a, b)) * b);
        },
    
        even: function (x) {
          return (x % 2) === 0;
        },
    
        odd: function (x) {
          return (x % 2) !== 0;
        }
    
      };
    };