chickadee » sparse-vectors » make-sparse-vector

make-sparse-vector #!optional DEFAULTprocedure
sparse-vector? xprocedure
sparse-vector-ref sparse-vector kprocedure
sparse-vector-set! sparse-vector k valueprocedure
sparse-vector->list sparse-vectorprocedure

make-sparse-vector, sparse-vector-ref and sparse-vector-set! are analogous to make-vector, vector-ref and vector-set!, except that the indices passed to sparse-vector-ref and sparse-vector-set! can be arbitrarily large.

The optional DEFAULT argument to the make-sparse-vector procedure specifies the default value for indices whose elements have not been set. If the element at index i has not been set, (sparse-vector-ref i) returns DEFAULT or #f, if DEFAULT was not specified when creating the vector.

sparse-vector->list is for debugging: It returns a list of the consecutive elements in a sparse vector from 0 to the highest element that has been set. Note that the list will also include all the #f elements for the unset elements.

(set! (sparse-vector-ref sparse-vector index) value) is supported.