私は数学的論理の本に 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).
そして、同じファイルで ensure_loaded を 2 回呼び出すとエラーが発生したようで、既にロードされているファイル (ops.pl など) の一部の述語が、2 回目にロードしようとしたファイルで定義されていない場合。
ensure_loaded を use_module に変更して相談しようとしましたが、うまくいきませんでした。