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))