小编Man*_*red的帖子

仅获取 plist 的键

我执行以下代码来仅检索 plist 的键:

(loop :for (key nil) :on config :by #'cddr
      :collect key))
Run Code Online (Sandbox Code Playgroud)

运行此命令会产生:

CONFIG-TEST> (loop :for (key nil) :on '(:foo 1 :bar 2) :by #'cddr
                   :collect key)
(:FOO :BAR)
Run Code Online (Sandbox Code Playgroud)

有没有比使用 LOOP 更“实用”的方法来做到这一点?

common-lisp

2
推荐指数
1
解决办法
1098
查看次数

defstruct - :read-only 不是只读的

在我读到的 CLHS 中:read-only x:“当 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)
Run Code Online (Sandbox Code Playgroud)

Lisp 不应该禁止更改此插槽吗?

lisp common-lisp

2
推荐指数
1
解决办法
51
查看次数

标签 统计

common-lisp ×2

lisp ×1