A.List (Aja v0.4.6) View Source
Some extra helper functions for working with lists,
that are not in the core List module.
Link to this section Summary
Functions
Prepends an element to a list, equivalent of [elem | list] that can be used in a pipe.
Populates a list of size n by calling generator_fun repeatedly.
Link to this section Functions
Prepends an element to a list, equivalent of [elem | list] that can be used in a pipe.
Examples
iex> [2, 3, 5, 8] |> A.List.prepend(1)
[1, 2, 3, 5, 8]
Populates a list of size n by calling generator_fun repeatedly.
Examples
# Although not necessary, let's seed the random algorithm
iex> :rand.seed(:exsplus, {1, 2, 3})
iex> A.List.repeatedly(&:rand.uniform/0, 3)
[0.40502929729990744, 0.45336720247823126, 0.04094511692041057]
# It is basically just syntactic sugar for the following:
iex> Stream.repeatedly(&:rand.uniform/0) |> Enum.take(3)Rationale
It has a consistent API with
Stream.repeatedly/1andList.duplicate/2It provides a less verbose way of writing one of the most common uses of
Stream.repeatedly/1It removes the temptation to write the following, which is more concise but is technically incorrect:
iex> incorrect = fn n -> for _i <- 1..n, do: :rand.uniform() end iex> incorrect.(0) |> length() 2 iex> Enum.to_list(1..0) # <- because of this [1, 0]
This is the same problem that A.ExRange is addressing.