common lisp:为lisp会话仅评估一次顶级表单

时间:2012-06-19 20:42:02

标签: macros lisp common-lisp

我最近用REPL进行了更多的交互式开发,我有一段代码将符号推送到全局动态变量(列表数据结构)。问题是,我发现自己反复重新加载将该符号推送到全局的文件,因此每次重新加载时,我都会将另一个重复的符号推送到列表中。

我希望每次lisp会话只执行一次push操作,无论重新编译/重新加载的次数如何,以模仿在更传统/部署的环境中的行为,当我只加载代码时一次用于lisp会话。

这是我现在使用的方法。我希望有更好的方法......

(defvar *do-only-once*
  (progn
    (push 'some-val *some-global-lst*)
    'evaled))

1 个答案:

答案 0 :(得分:2)

我只会使用PUSHNEW