一般的な Lisp では、次のように書けることに気付きました。
(defun foo (&key (a 1) (b 2) (c (+ a b))) (print (+ a b c)))
そして、私が呼び出すと(foo)
、6
が印刷されます。したがって、引数はおよびc
に設定された値を参照できます。しかし、 で同様のことを行う方法が見つからないようです。何かのようなもの:a
b
defstruct
CL-USER> (defstruct thing a b c)
THING
CL-USER> (setq q (make-thing :a 1 :b 2 :c (+ a b)))
; Evaluation aborted
CL-USER> (setq q (make-thing :a 1 :b 2 :c (+ :a :b)))
; Evaluation aborted
これを行う方法はありますか?