Range

GitHub   Edit on GitHub

Utilities for working with ranges.

A range represents an interval—a set of values with a beginning and an end.

All functions in this module treat ranges as exclusive, but inclusive versions of all APIs are available in the Inclusive submodule.

Added in 0.3.0
versionchanges
0.6.0Treats all ranges as exclusive
1
from "range" include Range

Values

Functions and constants included in the Range module.

Range.inRange

Added in 0.3.0
versionchanges
0.6.0Treats all ranges as exclusive
1
inRange : (value: Number, range: Range<Number>) => Bool

Checks if the given number is within the range.

Parameters:

param type description
value Number The number being checked
range Range<Number> The range to check within

Returns:

type description
Bool Whether or not the value is within range

Examples:

1
Range.inRange(1, { rangeStart: 0, rangeEnd: 2 }) == true
1
Range.inRange(10, { rangeStart: 0, rangeEnd: 2 }) == false

Range.forEach

Added in 0.3.0
versionchanges
0.6.0Treats all ranges as exclusive
1
forEach : (fn: (Number => Void), range: Range<Number>) => Void

Calls the given function with each number in the range.

For increasing ranges, the value is increased by 1 in each iteration, and for decreasing ranges, the value is decreased by 1. The value is always changed by 1, even if non-integer values were provided in the range.

Parameters:

param type description
fn Number => Void The function to be executed on each number in the range
range Range<Number> The range to iterate

Examples:

1
Range.forEach(val => print(val), { rangeStart: 0, rangeEnd: 2 })

Range.map

Added in 0.3.2
versionchanges
0.6.0Treats all ranges as exclusive
1
map : (fn: (Number => a), range: Range<Number>) => List<a>

Produces a list by calling the given function on each number included in the range.

For increasing ranges, the value is increased by 1 in each iteration, and for decreasing ranges, the value is decreased by 1. The value is always changed by 1, even if non-integer values were provided in the range.

Parameters:

param type description
fn Number => a The function called on each number in the range that returns the value for the output list
range Range<Number> The range to iterate

Returns:

type description
List<a> A list containing all values returned from the fn

Examples:

1
Range.map(val => val * 2, { rangeStart: 0, rangeEnd: 3 }) == [0, 2, 4]

Range.Inclusive

Values

Functions and constants included in the Range.Inclusive module.

Range.Inclusive.inRange

Added in 0.6.0
versionchanges
0.3.0Root APIs originally handled Inclusive & Exclusive variants
1
inRange : (value: Number, range: Range<Number>) => Bool

Checks if the given number is within the range.

Parameters:

param type description
value Number The number being checked
range Range<Number> The range to check within

Returns:

type description
Bool Whether or not the value is within range

Examples:

1
Range.Inclusive.inRange(1, { rangeStart: 0, rangeEnd: 1 }) == true
1
Range.Inclusive.inRange(10, { rangeStart: 0, rangeEnd: 2 }) == false

Range.Inclusive.forEach

Added in 0.3.0
versionchanges
0.3.0Root APIs originally handled Inclusive & Exclusive variants
1
forEach : (fn: (Number => Void), range: Range<Number>) => Void

Calls the given function with each number in the range.

For increasing ranges, the value is increased by 1 in each iteration, and for decreasing ranges, the value is decreased by 1. The value is always changed by 1, even if non-integer values were provided in the range.

Parameters:

param type description
fn Number => Void The function to be executed on each number in the range
range Range<Number> The range to iterate

Examples:

1
Range.Inclusive.forEach(val => print(val), { rangeStart: 0, rangeEnd: 2 })

Range.Inclusive.map

Added in 0.3.2
versionchanges
0.3.0Root APIs originally handled Inclusive & Exclusive variants
1
map : (fn: (Number => a), range: Range<Number>) => List<a>

Produces a list by calling the given function on each number included in the range.

For increasing ranges, the value is increased by 1 in each iteration, and for decreasing ranges, the value is decreased by 1. The value is always changed by 1, even if non-integer values were provided in the range.

Parameters:

param type description
fn Number => a The function called on each number in the range that returns the value for the output list
range Range<Number> The range to iterate

Returns:

type description
List<a> A list containing all values returned from the fn

Examples:

1
Range.Inclusive.map(val => val * 2, { rangeStart: 0, rangeEnd: 2 }) == [0, 2, 4]
This is a notification!