列出给定库模块中的谓词

时间:2015-07-16 13:47:08

标签: prolog iso-prolog

是否有方法列出在SICStus Prolog的给定库模块中定义的所有谓词?

e.g。如果我加载列表模块:

| ?- use_module(library(lists)).

是否有另一个谓词我可以从提示符中运行,告诉我刚刚导入了哪些谓词?

1 个答案:

答案 0 :(得分:4)

这适用于SWI-Prolog,但谓词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, ... / ...|...].

您应该可以在任何实现current_predicate/1的Prolog中执行此操作。

相关问题