【发布时间】:2021-05-13 15:13:32
【问题描述】:
在我为:read-only x 阅读的 CLHS 中:“当 x 为真时,这指定此插槽不能更改;它将始终包含在构造时提供的值。”
我可以做到这一点(CCL、SBCL):
CL-USER> (defstruct foo
(one 0 :read-only t))
FOO
CL-USER> (defparameter *foo* (make-foo))
*FOO*
CL-USER> *foo*
#S(FOO :ONE 0)
CL-USER> (setf (slot-value *foo* 'one) 1)
1 (1 bit, #x1, #o1, #b1)
CL-USER> *foo*
#S(FOO :ONE 1)
Lisp 不应该禁止更改此插槽吗?
【问题讨论】:
标签: lisp common-lisp