code: function rangeWhile(cond, fn) {
      var i = 0, res = [];
  
      while(cond(i)) {
          res[i] = fn(i);
          i++;
      }
      return res;
  }
docs: Does the same this as `range(1, 5)` but instead
  of taking start and stop values, this function keeps
  calling `fn` with the index of the array until `cond`
  return false;