所以,我正在尝试学习Lisp,我在定义String是什么时遇到了一个问题.
我正在阅读Paul Graham的ANSI Common Lisp,在本书中它指出String是一个向量或一维数组.
所以,我创建一个String:
(defvar *my-string* "abc")
然后我可以这样访问my-string的第一个值:
(aref *my-string* 0)
但如果它是一个向量,为什么我不能这样访问该元素:
(svref *my-string* 0)
我的意思是,当我以这种方式创建矢量时:
(defvar my-vec (make-array 4 :initial-element 1))
我可以使用svref访问第一个元素:
(svref my-vec 0) ; returns 1
“值”abc“不属于类型(SIMPLE-ARRAY T(*)).”