我最近用REPL进行了更多的交互式开发,我有一段代码将符号推送到全局动态变量(列表数据结构)。问题是,我发现自己反复重新加载将该符号推送到全局的文件,因此每次重新加载时,我都会将另一个重复的符号推送到列表中。
我希望每次lisp会话只执行一次push操作,无论重新编译/重新加载的次数如何,以模仿在更传统/部署的环境中的行为,当我只加载代码时一次用于lisp会话。
这是我现在使用的方法。我希望有更好的方法......
(defvar *do-only-once*
(progn
(push 'some-val *some-global-lst*)
'evaled))