列出给定库模块中的谓词
Listing predicates within a given library module
是否有办法列出在 SICStus Prolog 的给定库模块中定义的所有谓词?
例如如果我加载列表模块:
| ?- use_module(library(lists)).
是否有另一个谓词我可以 运行 从提示中告诉我刚刚导入了哪些谓词?
这适用于 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 中执行此操作
是否有办法列出在 SICStus Prolog 的给定库模块中定义的所有谓词?
例如如果我加载列表模块:
| ?- use_module(library(lists)).
是否有另一个谓词我可以 运行 从提示中告诉我刚刚导入了哪些谓词?
这适用于 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
.