26. Miscelanious algorithms

The ALGORITHM module exposes collection of miscellaneous array manipulation algorithms.

All functions and symbols are in “algorithm” module, use require to get access to it.

require daslib/algorithm

26.2. Array manipulation

unique(a: array<auto(TT)>)

unique returns auto

argument

argument type

a

array<auto(TT)>

Returns array of the elements of a with duplicates removed.

sort_unique(a: array<auto(TT)>)

sort_unique returns auto

argument

argument type

a

array<auto(TT)>

Returns array of the elements of a, sorted and with duplicates removed. The elements of a are sorted in ascending order. The resulted array has only unqiue elements.

reverse(a: array<auto>)

reverse returns auto

argument

argument type

a

array<auto>

Returns array of the elements of a in reverse order.

combine(a: array<auto(TT)> const; b: array<auto(TT)> const)

combine returns auto

argument

argument type

a

array<auto(TT)> const

b

array<auto(TT)> const

Returns array of the elements of a and then b.

reverse(a: auto)

reverse returns auto

argument

argument type

a

auto

Returns array of the elements of a in reverse order.

combine(a: auto const; b: auto const)

combine returns auto

argument

argument type

a

auto const

b

auto const

Returns array of the elements of a and then b.

26.3. Uncategorized

erase_all(arr: auto; value: auto const)

erase_all returns auto

argument

argument type

arr

auto

value

auto const

Erase all elements equal to value from arr

topological_sort(nodes: array<auto(Node)> const)

topological_sort returns auto

argument

argument type

nodes

array<auto(Node)> const

Topological sort of a graph. Each node has an id, and set (table with no values) of dependencies. Dependency before represents a link from a node, which should appear in the sorted list before the node. Returns a sorted list of nodes.