0

对于 Prolog 插件,例如 SICStus spiderproDTPDT,eclipse 编辑器中的“查找声明”无法在位于不同目录的模块中找到谓词定义。

例如,

$HOME/dirA/A.pl:
    :- module(database,[]).
    ...
    set_dbaccess(Options) :-
      (db_done ->
           true
           ; 
    ...

$HOME/dirB/B.pl:
    ...
    fd(From,To,OrigOptions) :-
       database:set_dbaccess(OrigOptions),
    ...

databaseB.pl 顶部没有模块的导入语句。所以上述所有插件都找不到 moduledatabase和 predicate的定义set_dbaccess。当然,对符号的 F3 操作database, set_dbaccess也会失败。

有什么方法可以解决这个问题吗?

4

1 回答 1

0

我不太确定你到底想要什么,但我想你可以制作一个文件说 pred_files 包含 :-dynamic pred1/2, pred2/3, ... 并且每次你需要在另一个 .pl 文件中使用谓词时,你可以使用:-ensure_loaded(pred_files)

于 2012-07-06T14:28:42.973 回答