range.js 872 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import _curry2 from "./internal/_curry2.js";
  2. import _isNumber from "./internal/_isNumber.js";
  3. /**
  4. * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).
  5. *
  6. * @func
  7. * @memberOf R
  8. * @since v0.1.0
  9. * @category List
  10. * @sig Number -> Number -> [Number]
  11. * @param {Number} from The first number in the list.
  12. * @param {Number} to One more than the last number in the list.
  13. * @return {Array} The list of numbers in the set `[a, b)`.
  14. * @example
  15. *
  16. * R.range(1, 5); //=> [1, 2, 3, 4]
  17. * R.range(50, 53); //=> [50, 51, 52]
  18. */
  19. var range =
  20. /*#__PURE__*/
  21. _curry2(function range(from, to) {
  22. if (!(_isNumber(from) && _isNumber(to))) {
  23. throw new TypeError('Both arguments to range must be numbers');
  24. }
  25. var result = [];
  26. var n = from;
  27. while (n < to) {
  28. result.push(n);
  29. n += 1;
  30. }
  31. return result;
  32. });
  33. export default range;