ramda
Version:
A practical functional library for JavaScript programmers.
32 lines • 1.01 kB
JavaScript
var _curry2 = /*#__PURE__*/require("./internal/_curry2.js");
var _isNumber = /*#__PURE__*/require("./internal/_isNumber.js");
/**
* Returns a list of numbers from `from` (inclusive) to `to` (exclusive).
*
* @func
* @memberOf R
* @since v0.1.0
* @category List
* @sig Number -> Number -> [Number]
* @param {Number} from The first number in the list.
* @param {Number} to One more than the last number in the list.
* @return {Array} The list of numbers in the set `[a, b)`.
* @example
*
* R.range(1, 5); //=> [1, 2, 3, 4]
* R.range(50, 53); //=> [50, 51, 52]
*/
var range = /*#__PURE__*/_curry2(function range(from, to) {
if (!(_isNumber(from) && _isNumber(to))) {
throw new TypeError('Both arguments to range must be numbers');
}
var result = Array(from < to ? to - from : 0);
var finish = from < 0 ? to + Math.abs(from) : to - from;
var idx = 0;
while (idx < finish) {
result[idx] = idx + from;
idx += 1;
}
return result;
});
module.exports = range;