struct - Common Lisp 按顺序处理结构槽

标签 struct common-lisp

是否有一种变通方法可以像 LET* 中那样按顺序处理结构体槽绑定(bind),以便前面的槽分配对后面的槽分配可见?

例如在下面我希望cd可见。

(defstruct (my-struct (:constructor cons-struct (a b)))
  (c (* a b))
  (d c))

我怎样才能得到这种效果?

最佳答案

您已经使用了 boa constructor .您可以使用它的 boa lambda list按顺序做事:

(defstruct (my-struct (:constructor cons-struct (a b
                                                 &aux
                                                  (c (* a b))
                                                  (d c))))
  c
  d)

关于struct - Common Lisp 按顺序处理结构槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59235894/

相关文章:

Lisp - 后序二叉树的问题

input - 在 Common Lisp 中从键盘读取 lambda 表达式

csv - 用于字符串比较的 Rust 嵌套迭代器中的所有权和生命周期

c - 为什么我不必使用指针?

c++ - 使用 vector 和 struct 在 C++ 中获取错误

lisp - 为什么 uninterned 符号用于 Common Lisp 中的包名和导出?

Lisp/列表的交集

common-lisp - 我可以通过函数的值在函数命名空间中定义函数吗?

c# - 为什么绑定(bind)到结构不起作用?

C - 创建一个匿名结构实例