• 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
  • char.js

  • ¶
    /* vim: set et sw=2 ts=2: */
    'use strict';
    
    module.exports = {
      
      isAsciiLetter: function (x) {
        return /^[a-zA-Z]+$/.test(x);
      },
    
      isLetter: function (x) {
        var xUpper = x.toUpperCase();
        var xLower = x.toLowerCase();
        for (var i = 0; i < x.length; i += 1) {
          if (xUpper[i] === xLower[i]) {
            return false;
          }
        }
        return true;
      },
    
      isUpper: function (x) {
        var xUpper = x.toUpperCase();
        var xLower = x.toLowerCase();
        for (var i = 0; i < x.length; i += 1) {
          if (xUpper[i] === xLower[i] || x[i] !== xUpper[i]) {
            return false;
          }
        }
        return true;
      },
    
      isLower: function (x) {
        var xUpper = x.toUpperCase();
        var xLower = x.toLowerCase();
        for (var i = 0; i < x.length; i += 1) {
          if (xUpper[i] === xLower[i] || x[i] !== xLower[i]) {
            return false;
          }
        }
        return true;
      },
    
      ord: function (x) {
        return x.charCodeAt(0);
      },
    
      chr: function (x) {
        return String.fromCharCode(x);
      }
    
    };