如何正确指定可扩展向量的 common-lisp 类型(即,vector-push-extend 可接受),以便可以复制它。例如,如果一个向量定义为:
(defparameter v (make-array 2
:initial-contents '((a (b)) (c (d) e))
:adjustable t
:fill-pointer t))
我复制它的简单(不正确)方法是:
(map 'array #'copy-tree v)
但这会在 sbcl 中产生类型错误。正确的序列类型规范可以使这项工作吗?