Rivet.Utils.List (rivet_utils v2.0.8)

View Source

Contributor: Brandon Gillespie

Summary

Functions

iex> pop([1,2,3,4,5]) [1,2,3,4]

iex> put_different([], 20, 10, :last_off) [last_off: 10] iex> put_different([], 10, 10, :last_off) []

Inefficient but simple set operations.

Inefficient but simple set operations.

Functions

pop(list)

iex> pop([1,2,3,4,5]) [1,2,3,4]

put_different(chgs, same, same, key)

iex> put_different([], 20, 10, :last_off) [last_off: 10] iex> put_different([], 10, 10, :last_off) []

setadd(list, elem, getter)

Inefficient but simple set operations.

Maintains order, returns a list, uses a "getter" function to pull the value

iex> setadd([1,2,3], 3, &(&1)) [1,2,3] iex> setadd([1,2,3], 4, &(&1)) [1,2,3,4]

setremove(list, elem, getter)

Inefficient but simple set operations.

Maintains order, returns a list, uses a "getter" function to pull the value

iex> setremove([1,2,3], 3, &(&1)) [1,2] iex> setremove([1,2,3], 4, &(&1)) [1,2,3]

trim(list, length)

TODO: switch to Enum.take()

iex> trim([1,2,3,4,5], 3) [1,2,3] iex> trim([1,2,3,4], 10) [1,2,3,4] iex> trim([1,2,3,4,5], 0) []