有没有办法列出在给定库模块中为 SICStus Prolog 定义的所有谓词?
例如,如果我加载列表模块:
| ?- use_module(library(lists)).
我可以从提示符运行另一个谓词来告诉我刚刚导入了哪些谓词?
有没有办法列出在给定库模块中为 SICStus Prolog 定义的所有谓词?
例如,如果我加载列表模块:
| ?- use_module(library(lists)).
我可以从提示符运行另一个谓词来告诉我刚刚导入了哪些谓词?
这适用于 SWI-Prolog,但谓词current_predicate/1
被标记为“ISO”,所以至少在 SICTUS 中尝试一下。这是我得到的:
?- 使用模块(库(列表))。 真的。 ?- current_predicate(列表:P)。 P = max_list/3 ; P = 展平/2; % 等等
或者可能:
?- 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
。