Я использую SWI Prolog для книги по математической логике, и в книге представлен исходный код для некоторых алгоритмов в Prolog.Проблема в том, что когда я пытаюсь загрузить файл, интерпретатор просто запрашивает что-то вроде:
load_files/2: No permission to load source `**' (Non-module file already loaded into module **; trying to load into io)
Я посмотрел исходный код и обнаружил, что большинство файлов начинаются с:
:- module(**,[***]).
, за которым следует
user:file_search_path(common,'../common').
:- ensure_loaded(ops).
:- ensure_loaded(def).
, и, по-видимому, при вызове sure_loaded дважды с одним и тем же файлом возникла ошибка, и если некоторые из предикатов в уже загруженном файле (например, ops.pl) не будутопределено в файле, который пытался загрузить его во второй раз.
Я попытался изменить обеспечить, что было загружено на use_module и проконсультироваться, но не сработало.