A.Vector.split

You're seeing just the function split, go back to A.Vector module for more information.

Specs

split(t(val), integer()) :: {t(val), t(val)} when val: value()

Splits the vector into two vectors, leaving amount elements in the first one.

If amount is a negative number, it starts counting from the back to the beginning of the vector.

Runs in linear time.

Examples

iex> vector = A.Vector.new([1, 2, 3])
iex> A.Vector.split(vector, 2) |> inspect()
"{vec([1, 2]), vec([3])}"
iex> A.Vector.split(vector, 10) |> inspect()
"{vec([1, 2, 3]), vec([])}"
iex> A.Vector.split(vector, 0) |> inspect()
"{vec([]), vec([1, 2, 3])}"
iex> A.Vector.split(vector, -1) |> inspect()
"{vec([1, 2]), vec([3])}"
iex> A.Vector.split(vector, -5) |> inspect()
"{vec([]), vec([1, 2, 3])}"