Skip to content

Latest commit

 

History

History
283 lines (210 loc) · 7.66 KB

File metadata and controls

283 lines (210 loc) · 7.66 KB
title Range

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

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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