# Math.range

Math.range($start, $end, $step = 1) -> list

### Description

Create a list of numbers from `$start`

to `$end`

(inclusive).

If `$end`

is less than `$start`

, the numbers will appear in descending order.

If `$step`

is given, the numbers will appear in intervals.

Math.range(1, 5) //= [1, 2, 3, 4, 5] Math.range(5, 1) //= [5, 4, 3, 2, 1] Math.range(-3, 0) //= [-3, -2, -1, 0] // With step of 2 Math.range(0, 10, 2) //= [0, 2, 4, 6, 8, 10] // With floats Math.range(0.1, 0.5, 0.1) //= [0.1, 0.2, 0.3, 0.4, 0.5]

`Math.range`

vs `range`

There is a subtle difference between `Math.range`

and the bare `range`

function.

`range`

: returns an Iterator object, which is less flexible, but can conserve memory over very large ranges. This is recommended if you are only looping over a static range of numbers.`Math.range`

returns a List object, which takes more memory, but is easier to manipulate.

// bare `range` function (iterator) foreach range(1, 1000) as $num { ... } // Math.range function - List object $myNums = Math.range(1, 1000) foreach $myNums as $num { ... }