相关疑难解决方法(0)

常见的lisp:defstruct结构的slot-value

在常见的lisp中,我可以使用插槽名称/符号来访问结构槽?

我想要的是

(defstruct point (x 0) (y 0))    
(defmacro -> (struct slot) `(slot-value ,struct ,slot))

(setf p (make-point))
(setf (slot-value p 'x) 1)
(setf (-> p 'y) 2)
Run Code Online (Sandbox Code Playgroud)

我正在使用clozure cl,并且在clozure cl中这是有效的.但是,AFAIK这是非标准行为(相当于"未定义行为"C++).我不打算切换到另一个CL实现,所以我应该继续使用 slot-value结构,还是有更好的方法来实现它?

structure accessor common-lisp clos ccl

8
推荐指数
1
解决办法
2359
查看次数

标签 统计

accessor ×1

ccl ×1

clos ×1

common-lisp ×1

structure ×1