【发布时间】:2016-11-05 15:36:29
【问题描述】:
我正在用 prolog 编写一个程序。我有 3 个文件:Class.pl、main.pl、utilities.pl。
类.pl:
:- include('utilities.pl').
main.pl:
:- include('utilities.pl').
:- include('Class.pl').
当我编译 main.pl 时,我收到警告“...的子句不在一起”。
但是,如果我用 ensure_loaded 切换包含,它不会再给我警告。我假设这与循环依赖和utilities.pl 中的谓词被重写有关?在 C++ 中,ensure_loaded 是否像 #pragma once 一样工作?
但我也读过某个地方 include 实际上包含代码,而 ensure_loaded 只参考它?
如果有人能为我解决问题并让我知道我应该做什么,我将非常感激:)
【问题讨论】:
标签: prolog