This module implements extendable arrays with logarithmic access time. It has been adapted from shared code written by David Warren and Fernando Pereira.
Usage:new_array(Array)
returns an empty new array Array.
Usage:is_array(Array)
Array actually is an array.
Usage:aref(Index,Array,Element)
unifies Element to Array[Index], or fails if Array[Index] has not been set.
Usage:arefa(Index,Array,Element)
is as aref/3, except that it unifies Element with a new array if Array[Index] is undefined. This is useful for multidimensional arrays implemented as arrays of arrays.
Usage:arefl(Index,Array,Element)
is as aref/3, except that Element appears as [] for undefined cells. Thus, arefl(_,_,[]) always succeeds no matter what you give in the first or second args.
Usage:aset(Index,Array,Element,NewArray)
unifies NewArray with the result of setting Array[Index] to Element.
Usage:array_to_list(Array,List)
returns a List of pairs Index-Element of all the elements of Array that have been set.