diff options
author | Goheeca <goheeca@gmail.com> | 2013-08-20 17:58:33 +0200 |
---|---|---|
committer | Goheeca <goheeca@gmail.com> | 2013-08-20 17:58:33 +0200 |
commit | edf839bfaefcdeb567ead6af0572d1e5195b4a3d (patch) | |
tree | a15d09eef4f9d4110b383ff63ed9f994eb1e762f /common-lisp.html.markdown | |
parent | 424fc8ce80af45cdf64037eee9de7773971194aa (diff) |
added adjustable vectors
Diffstat (limited to 'common-lisp.html.markdown')
-rw-r--r-- | common-lisp.html.markdown | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/common-lisp.html.markdown b/common-lisp.html.markdown index 0a8ce990..bf4844f3 100644 --- a/common-lisp.html.markdown +++ b/common-lisp.html.markdown @@ -219,7 +219,7 @@ nil ; for false - and the empty list ;;; Vectors -;; Vectors are fixed-length arrays +;; Vector's literals are fixed-length arrays #(1 2 3) ; => #(1 2 3) ;; Use concatenate to add vectors together @@ -253,6 +253,23 @@ nil ; for false - and the empty list ; => 0 +;;; Adjustable vectors + +;; Adjustable vectors have the same printed representation +;; as fixed-length vector's literals. + +(defparameter *adjvec* (make-array '(3) :initial-contents '(1 2 3) + :adjustable t :fill-pointer t)) + +*adjvec* ; => #(1 2 3) + +;; Adding new element: +(vector-push-extend 4 *adjvec*) ; => 3 + +*adjvec* ; => #(1 2 3 4) + + + ;;; Naively, sets are just lists: (set-difference '(1 2 3 4) '(4 5 6 7)) ; => (3 2 1) |