Vector Module
All the functions in this module can be self-called on any vector value, if that function expects a vector as the first argument.
vector.iter(v: vector<T>): iterator<T>
Returns an iterator over the elements of v
.
vector.len(v: vector): int
Returns the length of v
.
vector.get(v: vector, index: int, default?)
Returns the value of v
at index index
. If the index is out of range, default
is returned
vector.contains(v: vector, value): bool
Checks if the value
is contained in v
.
vector.position(value): int?
Returns the index of the element in the vector that equal value
, if there is any.
vector.push(v: vector, value)
Pushes the value
onto v
.
vector.pop(v: vector<T>, index: int?): T?
Pops value at index
off of v
and returns it. If index
is not given, the last value in v
will be popped.
vector.join(v: vector, sep: string): string
Returns a string of all the values in v
as strings seperated by sep
.
vector.swap(v: vector, i1: int, i1: int)
Swaps the index i1
with index i2
of v
if they are in bounds.
vector.copy(v: vector<T>): vector<T>
Returns a shallow copy of v
.
vector.clear(v: vector)
Clears v
of it's values.
Iterator
All the functions in this module can only be self-called on the iterator user-object, if that function expects an iterator user-object as the first argument.
<iterator>.next(iter: iterator<V>): V?
Returns the next value in the iteration if any are left.
<iterator>.any(iter: iterator<V>, cond: fn(v: V)): boolean
Returns true if any value of iter
makes the cond
function return a truthy value.
<iterator>.all(iter: iterator<V>, cond: fn(v: V)): boolean
Returns true if all values of iter
make the cond
function return a truthy value.
<iterator>.collect(iter: iterator<V>): vector<V>
Returns a vector of all the values left in the iter
iterator.