Список предикатов в данном модуле библиотеки

Есть ли способ перечислить все предикаты, которые определены в данном модуле библиотеки для SICStus Prolog?

например, если я загружаю модуль списков:

| ?- use_module(library(lists)).

есть ли другой предикат, который я могу запустить из приглашения, чтобы сказать мне, какие предикаты были только что импортированы?

1 ответ

Решение

Это работает с SWI-Prolog, но предикат current_predicate/1 помечен как "ISO", так что, по крайней мере, попробуйте SICSTUS. Вот что я получаю:

? - use_module (библиотека (списки)).
правда.?- текущий_предикат (списки:P).
P = max_list/3;
P = сгладить /2;
% и так далее

Или, может быть:

? - findall (P, current_predicate (списки: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,

Другие вопросы по тегам