vector
List of symbols:
make-vec, vec, vec->list, vec-pop!, vec-push!, vec-slice
make-vec
Usage: (make-vec capacity default)
Make a new vector with capacity and default item(s).
Example:
(test::assert-equal [] (make-vec))
(test::assert-equal ['x 'x 'x] (make-vec 3 'x))
(test::assert-equal [nil nil nil nil nil] (make-vec 5 nil))
(test::assert-equal [] (make-vec 5))
vec
Usage: (vec item1 item2 .. itemN)
Make a new vector with items.
Example:
(test::assert-equal [] (vec))
(test::assert-equal [1 2 3] (vec 1 2 3))
vec->list
Usage: (vec->list vector)
Convert a vector to a list.
No Examples
vec-pop!
Usage: (vec-pop! vector) -> object
Pops the last object off of the end of the vector. This is destructive!
Example:
(def test-pop-vec (vec 1 2 3))
(test::assert-equal 3 (vec-pop! test-pop-vec))
(test::assert-equal [1 2] test-pop-vec)
(test::assert-equal 2 (vec-pop! test-pop-vec))
(test::assert-equal [1] test-pop-vec)
(test::assert-equal 1 (vec-pop! test-pop-vec))
(test::assert-equal [] test-pop-vec)
vec-push!
Usage: (vec-push! vector object) -> vector
Pushes the provided object onto the end of the vector. This is destructive!
Example:
(def test-push-vec (vec))
(test::assert-equal [1] (vec-push! test-push-vec 1))
(test::assert-equal [1] test-push-vec)
(test::assert-equal [1 2] (vec-push! test-push-vec 2))
(test::assert-equal [1 2] test-push-vec)
(test::assert-equal [1 2 3] (vec-push! test-push-vec 3))
(test::assert-equal [1 2 3] test-push-vec)
vec-slice
Usage: (vec-slice vector start end)
Returns a slice of a vector (0 based indexes, end is exclusive).
Example:
(test::assert-equal [5 6] (vec-slice [1 2 3 4 5 6] 4 6))
(test::assert-equal [1 2 3] (vec-slice [1 2 3 4 5 6] 0 3))
(test::assert-equal [3 4 5] (vec-slice [1 2 3 4 5 6] 2 5))
(test::assert-equal [3 4 5 6] (vec-slice [1 2 3 4 5 6] 2))