所以我再次经历了 Practical Common Lisp,我无法真正理解如何创建一个具有恒定大小的向量。
根据书:
然而,即使是带有填充指针的向量也不能完全调整大小。向量 *x* 最多可以包含五个元素。要制作任意大小的向量,您需要传递 MAKE-ARRAY 另一个关键字参数::adjustable。
但是,当我使用时,(vector-push-extend)
即使我设置:adjustable nil
(或保持默认),我也可以扩展我的初始向量。
(vector-push 'a *x*) ;; 0
(vector-push 'b *x*) ;; 1
(vector-push 'c *x*) ;; 2
(vector-push 'd *x*) ;; 3
(vector-push 'e *x*) ;; 4
*x* ;; #(A B C D E)
(vector-push 'f *x*) ;; NIL
*x* ;; #(A B C D E)
(vector-push-extend 'f *x*) ;; 5
*x* ;; #(A B C D E F)
我假设(vector-push-extend)
不能调整不是数组的大小:adjustable
?创建非动态(不可调整)数组的正确方法是什么?