Есть ли обходной путь, чтобы заставить sure_loaded/1 работать в GNU Prolog, как это работает во многих других системах Prolog? Цель состоит в том, чтобы иметь преамбулу, чтобы остальная часть кода могла использовать sure_loaded/1 независимо от того, какую систему Пролога я использую.
Я пробовал следующее:
:- multifile(term_expansion/2).
term_expansion((:- ensure_loaded(X)),
(:- atom_concat('<base>\\', X, Y),
include(Y))).
Но следующий запрос не работает:
:- ensure_loaded('suite.p').
Само вычисление пути не является предметом вопроса, а является переопределением директивы в GNU Prolog. Есть еще одна директива, вызывающая проблемы: meta_predicate/1. Байт-код вылетает следующим образом:
Пока