ESC
No recent searches
Search by
Standard Library  /  Range

Range

Utilities for working with ranges.

Edit on GitHub

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
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
inRange : (value: Number, range: Range<Number>) => Bool

Checks if the given number is within the range.

Parameters:

value: The number being checked
range: The range to check within

Returns:

Bool: Whether or not the value is within range

Examples:

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

Range.forEach

Added in 0.3.0
versionchanges
0.6.0Treats all ranges as exclusive
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:

fn: The function to be executed on each number in the range
range: The range to iterate

Examples:

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

Range.map

Added in 0.3.2
versionchanges
0.6.0Treats all ranges as exclusive
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:

fn: The function called on each number in the range that returns the value for the output list
range: The range to iterate

Returns:

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

Examples:

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
inRange : (value: Number, range: Range<Number>) => Bool

Checks if the given number is within the range.

Parameters:

value: The number being checked
range: The range to check within

Returns:

Bool: Whether or not the value is within range

Examples:

Range.Inclusive.inRange(1, { rangeStart: 0, rangeEnd: 1 }) == true
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
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:

fn: The function to be executed on each number in the range
range: The range to iterate

Examples:

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
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:

fn: The function called on each number in the range that returns the value for the output list
range: The range to iterate

Returns:

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

Examples:

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

Sign up for farm-to-inbox developer news

You can unsubscribe at any time. Read our privacy policy.

Copyright © 2024 The Grain Programming Language