Список предикатов в данном модуле библиотеки
Есть ли способ перечислить все предикаты, которые определены в данном модуле библиотеки для 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
,