1

我正在尝试编写一个简单的翻译脚本,但文件变得相当……冗长且令人困惑,主要是因为我已将所有翻译存储在文件末尾。它们的格式为动词(英语、芬兰语)。

我想知道是否有任何方法可以将它们存储在不同的文件中,所以我不需要处理它们。我已经研究过使用咨询谓词,但我认为这并不完全符合我的需要。有没有办法在 SWI-prolog 中做到这一点?

作为记录,如果我使用咨询谓词,我会收到以下错误消息:

但是,如果我尝试使用咨询谓词,则会收到此错误:

Warning: The predicates below are not defined. If these are defined
Warning: at runtime using assert/1, use :- dynamic Name/Arity.
Warning: 
Warning: verb/2, which is referenced by
Warning:        c:/users/grant/documents/prolog/string_dictionary.pl:6:8: 1-st clause of translate_word/2
4

2 回答 2

1

您可以使用指令multifile以及咨询/1 或包含/1,但我建议改为切换到modules。多做一点工作,得到更好的维护和支持。

在动词文件的顶部添加声明

:- module(verbs, [verb/2]).

然后在你的翻译脚本中添加

:- use_module(verbs).
于 2013-05-06T05:37:35.987 回答
0

我认为consult/1是你需要的。

只需将您的verb事实(顺便说一句,为什么Verb在您的问题中大写?事实和规则名称不能以大写字母开头)放入单独的文件中,并在您的主 Prolog 文件中查阅该文件。

于 2013-05-05T20:07:36.080 回答