Enumerable utility functions not provided in the standard library.
Provides reduce with lookahead and list combination operations.
Summary
Functions
Combines list elements into progressively concatenated prefix strings.
Reduces a list with lookahead by passing both the current element and the remaining tail to the reducing function.
Functions
Combines list elements into progressively concatenated prefix strings.
Each element in the result is the concatenation of all preceding elements joined by underscores.
Arguments
list— a list of elements that can be converted to strings.
Returns
- A list of progressively combined strings.
Examples
iex> Localize.Utils.Enum.combine_list([:a, :b, :c])
["a", "a_b", "a_b_c"]
Reduces a list with lookahead by passing both the current element and the remaining tail to the reducing function.
The reducing function receives three arguments: the current element,
the remaining tail of the list, and the accumulator. It should return
a tagged tuple following the Enumerable protocol conventions:
{:cont, acc}, {:halt, acc}, or {:suspend, acc}.
Arguments
list— the list to reduce.accumulator— the initial accumulator value, or a tagged tuple.function— a function of arity 3:(element, tail, accumulator).
Returns
- The final accumulator value.
Examples
iex> Localize.Utils.Enum.reduce_peeking([1, 2, 3], [], fn head, tail, acc ->
...> {:cont, [{head, length(tail)} | acc]}
...> end)
[{3, 0}, {2, 1}, {1, 2}]