Lisp 如何访问数组中的结构元素

Lisp 如何访问数组中的结构元素,lisp,common-lisp,clisp,Lisp,Common Lisp,Clisp,ı要为huffnode结构创建新节点 我需要从存储huffnode节点的arr3中获取元素,如何访问它们的数据,并将它们复制到huffroot数据 你的问题语法混乱,所以不清楚你在问什么 使用aref访问数组元素,使用其访问器访问结构的插槽,这些访问器(默认情况下)自动从结构名称和插槽名称生成,例如(huffnode item x)获取(或用作setf集的目标时)存储在x ;粘液2.26 CL-USER>(defstruct huffnode项目左-右) 赫夫诺德 CL-USER>(defvar

ı要为huffnode结构创建新节点

我需要从存储huffnode节点的arr3中获取元素,如何访问它们的数据,并将它们复制到huffroot数据


你的问题语法混乱,所以不清楚你在问什么

使用
aref
访问数组元素,使用其
访问器访问结构的插槽,这些访问器(默认情况下)自动从结构名称和插槽名称生成,例如
(huffnode item x)
获取(或用作
setf
集的目标时)存储在
x

;粘液2.26
CL-USER>(defstruct huffnode项目左-右)
赫夫诺德
CL-USER>(defvar*huffroot*(使huffnode:item“foo”:左零:右零)
*哈夫根*
CL-USER>(setf(huffnode项*huffroot*)
(aref ARR30)
(huffnode左*huffroot*)
(aref arr3 1)
(huffnode右*huffroot*)
(aref arr3 2)

如果您投票-,请解释
(defstruct huffnode

  item
   left 
   right

) 

(setq huffroot (make-huffnode :item huffnode-item (aref arr3 (- (length arr3) 1))
                :left (aref arr3 (-  (length arr3) 1))
                :right (aref arr3 (-  (length arr3) 1))))