【发布时间】:2021-02-10 19:14:17
【问题描述】:
这可能特定于 SWI-Prolog。
如何询问系统谓词来自哪个模块?
对于谓词,可以使用predicate_property/2:
?-
predicate_property(is_ordset(_),imported_from(M)).
M = ordsets.
好的,所以is_ordset/2 来自模块ordsets。
我也可以询问定义该模块的特定文件:
?-
predicate_property(is_ordset(_),file(F)).
F = '/usr/local/logic/swipl/lib/swipl/library/ordsets.pl'.
但是如何对操作符做同样的事情,至少在 SWI-Prolog 中,操作符可以像谓词一样在模块中定义和导出?
【问题讨论】:
标签: module prolog operators swi-prolog