Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

range

Derived from Koto documentation (MIT, github.com/koto-lang/koto), maintained for koto-calc.

contains

|Range, Number| -> Bool

Returns true if the provided number is within the range, and false otherwise.

|Range, Range| -> Bool

Returns true if the provided range is entirely contained within the range, and false otherwise.

Example

print! (10..20).contains 15
check! true

print! (200..=100).contains 100
check! true

x = 1..10
print! x.contains -1
check! false

print! (10..20).contains 14..18
check! true

print! (100..200).contains 50..250
check! false

end

|Range| -> Number

Returns the end value of the range.

Example

print! (50..100).end()
check! 100

print! (10..0).end()
check! 0

See also

expanded

|Range, amount: Number| -> Range

Returns a copy of the input range which has been ‘expanded’ in both directions by the provided amount.

For an ascending range this will mean that start will decrease by the provided amount, while end will increase.

Negative amounts will cause the range to shrink rather than grow.

Example

print! (10..20).expanded 5
check! 5..25

print! (10..20).expanded -2
check! 12..18

print! (5..-5).expanded 5
check! 10..-10

print! (5..-5).expanded -5
check! 0..0

print! (5..-5).expanded -10
check! -5..5

intersection

|Range, Range| -> Range?

Returns a range representing the intersecting region of the two input ranges.

If there is no intersecting region then null is returned.

Example

print! (10..20).intersection 5..15
check! 10..15

print! (100..200).intersection 250..=150
check! 150..200

print! (0..10).intersection 90..99
check! null

is_inclusive

|Range| -> Bool

Returns true if the range has a defined end which is inclusive.

Example

print! (10..20).is_inclusive()
check! false

print! (1..=10).is_inclusive()
check! true

print! (100..).is_inclusive()
check! false

start

|Range| -> Number

Returns the start value of the range.

Example

print! (50..100).start()
check! 50

print! (10..0).start()
check! 10

See also

union

|Range, Number| -> Range

Returns the union of the range and a provided number.

If the number falls outside of the range then the resulting range will be expanded to include the number.

|Range, Range| -> Range

Returns the union of two ranges.

The resulting range will encompass all values that are contained in the two ranges, and any values that lie between them.

Example

print! (0..10).union 5
check! 0..10

print! (0..10).union 99
check! 0..100

a = 10..20
b = 40..50
print! a.union b
check! 10..50