在 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/

10-15 21:33