2015-05-25 18 views
0

我正在使用一個全局覆蓋了具有不同行爲的內置謂詞term_string/3的框架。 現在我想使用內置的,但它的模塊名稱是什麼? 我想打電話給<ItsModuleName>:term_string(..)SWI-Prolog 7.1.3中內置謂詞'term_string/3'的模塊名稱是什麼?

我知道列表操作有一個單獨的模塊:- use_module(library(lists))可以通過 lists:append(..)例如明確地被稱爲。 我已經通過網絡上的文檔和SWI手冊進行了搜索,但找不到任何東西。

回答

0

您可以使用標準的predicate_property/2謂詞來查詢謂詞的屬性。在這種情況下,我們得到:

?- predicate_property(term_string(_,_,_), P). 
P = interpreted ; 
P = visible ; 
P = built_in ; 
P = static ; 
P = imported_from('$syspreds') ; 
P = file('/Users/pmoura/lib/swipl-7.3.1/boot/syspred.pl') ; 
P = line_count(1196) ; 
P = nodebug ; 
P = number_of_clauses(2) ; 
P = number_of_rules(2) ; 
false. 

你想要的屬性是imported_from(Module),該插件這種情況下告訴你,謂詞temr_String/3從模塊'$syspreds'出口。但是,鑑於這些模塊定義了系統內置謂詞,因此您應該可以使用system:term_string(...)作爲備選文檔,因爲文檔中指出「Module usersystem導入了所有內置謂詞所在的地方。」。

+0

謝謝!這正是所期望的。 – mahene