在 C 中,为了确保我们不会重新包含包含的头文件,我们使用以下结构:
#ifndef UTILS
#define UTILS
#include "my_utils.h"
#endif
我已经把我的 Lisp 程序分解成单独的文件;多个文件有时使用同一个文件(例如,多个文件使用 my_utilities)。当我运行程序时,我收到警告说我正在重新定义事物(多次调用同一文件的
load
)。这可以通过在 C 中执行类似于
#ifndef
的操作来解决。Common Lisp 的等效方法或标准方法是什么?我对 Lisp 相当陌生。让我知道是否有我遗漏的最佳实践(也许是构建程序的不同方法?)。
最佳答案
你问的问题
预处理器条件(如 C 中的 #if
)的直接模拟是
#+
读取时间条件化工具。
你想问的问题
为了避免多次加载一个文件,您可以使用标准
(但已弃用)
provide
/ require
设施,
或者像 ASDF 这样的附加系统。
关于include - Common Lisp 中的 #ifndef,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38617905/