Define Extras module

I'll use as the host for utility functions needed to extend the stdlib.
This commit is contained in:
William Carroll 2020-12-11 22:42:55 +00:00
parent 6ff814a6d3
commit 6af5e4b82e
2 changed files with 36 additions and 0 deletions

View file

@ -0,0 +1,18 @@
defmodule Extras do
@doc """
Return an ascending range starting at `a` and ending at `b` (exclusive).
## Examples
iex> Extras.range(2, 5)
[2, 3, 4]
"""
def range(a, b) do
if b <= a do
[]
else
[a] ++ range(a + 1, b)
end
end
end

View file

@ -0,0 +1,18 @@
defmodule ExtrasTest do
use ExUnit.Case
doctest Extras
describe "range" do
test "returns an empty list for descending sequences" do
assert Extras.range(0, -2) == []
end
test "returns an empty list for non-ascending sequences" do
assert Extras.range(8, 8) == []
end
test "returns an exclusive range" do
assert Extras.range(3, 6) == [3, 4, 5]
end
end
end