有没有办法列出 SICStus Prolog 给定库模块中定义的所有谓词?
例如如果我加载列表模块:
| ?- use_module(library(lists)).
我可以从提示符中运行另一个谓词来告诉我刚刚导入了哪些谓词吗?
这适用于 SWI-Prolog,但是谓词current_predicate/1 http://www.swi-prolog.org/pldoc/doc_for?object=current_predicate/1被标记为“ISO”,所以至少在 SICSTUS 中尝试一下。这是我得到的:
?- use_module(library(lists)).
true.
?- current_predicate(lists:P).
P = max_list/3 ;
P = flatten/2 ;
% and so on
或者可能:
?- findall(P, current_predicate(lists:P), Ps).
Ps = [max_list/3, flatten/2, nth1/4, reverse/4, must_be/2, min_member_/3, reverse/2, transpose_pairs/2, ... / ...|...].
您应该能够在任何实现的 Prolog 中执行此操作current_predicate/1
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)