Elixir v1.2.6 Range

Defines a range.

A range represents a discrete number of values where the first and last values are integers.

Ranges can be either increasing (first <= last) or decreasing (first > last). Ranges are also always inclusive.

A Range is represented internally as a struct. However, the most common form of creating and matching on ranges is via the ../2 macro, auto-imported from Kernel:

iex> range = 1..3
1..3
iex> first..last = range
iex> first
1
iex> last
3

Summary

Functions

Creates a new range

Returns true if the given term is a range

Types

t()
t() :: %Range{first: term, last: term}
t(first, last)
t(first, last) :: %Range{first: first, last: last}

Functions

new(first, last)
new(integer, integer) :: t

Creates a new range.

range?(term)
range?(%Range{first: term, last: term}) :: true
range?(term) :: false

Returns true if the given term is a range.

It does not check if the range is valid.

Examples

iex> Range.range?(1..3)
true

iex> Range.range?(0)
false