1

jpl を使用して、同じ swipl ファイルを別のモジュールにロードしようとしています。私がこれをしなければならなかった理由は、他の述語をそのままにしておいて、新しい述語をアサートできるモジュールが欲しいからです。問題はswiplがこれを禁止しているように見えることです.

jpl.PrologException: PrologException: error(permission_error(load, source, 'load.pro'), context(/(load_files, 2), 'Non-module file already loaded into module stable; trying to load into to_mess'))
    at jpl.Query.get1(Query.java:336)
    at jpl.Query.hasMoreSolutions(Query.java:258)
    at jpl.Query.oneSolution(Query.java:688)
    at jpl.Query.hasSolution(Query.java:759)

load_files に redefine_module(true) を設定しようとしましたが、まだうまくいきません

val query = new Query(s"load_files(${m}:'${loader}', [redefine_module(true)])")
query.allSolutions()

私はこれによって何時間もブロックされていますが、オンラインで解決策を見つけることができません. 誰でも助けてもらえますか??

4

3 に答える 3

0

モジュール名は任意です。増加する整数を名前に追加できると思います。アサートされた述語を参照できるように、必ず追跡してください。

于 2013-08-13T23:30:44.180 に答える