gpt4 book ai didi

lisp - 具有重复参数的拼接列表的有效评估

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:37 24 4
gpt4 key购买 nike

我想通过类的插槽名称列表重复出现,两个类的相同插槽名称 ((current-trial *exp*) & (previous *exp*) 引用同一类的实例)。在每次递归时,我都想评估插槽名称,以便可以获取和设置该实例的该插槽的值。下面的代码满足了这个期望,但我担心依赖 eval,因为它很慢并且不允许词法上下文(Graham,1996)。什么是有效并考虑到词汇上下文的替代表述?

(dolist (a '(letter number font color height))
(eval
`(when (eq (,a (current-trial *exp*))
(,a (previous *exp*)))
(setf (,a (current-trial *exp*))
(random-not-item
(,a (current-trial *exp*))
(,a *exp*))))))

最佳答案

由于这些是插槽名称,您可以使用 slot-value:

(dolist (a '(letter number font color height))
(when (eq (slot-value (current-trial *exp*) a)
(slot-value (previous *exp*) a))
(setf (slot-value (current-trial *exp*) a)
(random-not-item
(slot-value (current-trial *exp*) a)
(slot-value *exp* a)))))

关于lisp - 具有重复参数的拼接列表的有效评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18409323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com