Common Lisp 顺序处理结构槽

Stu*_*ent 2 struct common-lisp

是否有一种解决方法可以按顺序处理结构体槽位绑定,LET*以便之前的槽位分配对后面的槽位可见?

例如在下面我想cd.

(defstruct (my-struct (:constructor cons-struct (a b)))
  (c (* a b))
  (d c))
Run Code Online (Sandbox Code Playgroud)

我怎么能得到这个效果?

Sva*_*nte 6

您已经使用了boa 构造函数。您可以使用它的boa lambda 列表按顺序执行操作:

(defstruct (my-struct (:constructor cons-struct (a b
                                                 &aux
                                                  (c (* a b))
                                                  (d c))))
  c
  d)
Run Code Online (Sandbox Code Playgroud)