問題タブ [prolog-toplevel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
prolog - プロローグ: 変数のすべての可能な値を取得する
私はProlog Tutorial 2.1に従っています。
プログラム
印刷し2
ます。
ただし、チュートリアルに従って、可能な値のリストを出力することを想定しています。
同じ結果を得るためにのみ repl で再試行します。
変数の可能な値のリストを取得/印刷するにはどうすればよいですか?
prolog - プロローグでREPL経由でロードされたファイルを開く方法は?
Prolog、または少なくとも SWI-Prolog では、次のように入力してファイルをロードできます。
また
また
また
ただし、ロードされるファイルを前処理したいので、上記のシングルトン リストの内容を互換性のあるファイル パスにする必要があり、それを の最初の引数として使用しますopen/3
。現在動作するもの:
- を使用して REPL からクエリをキャッチするためのフック
expand_query/4
- シングルトン リスト式のマッチングと 1 つの要素の変数へのバインド
機能しないもの:
- »2.« で述べた変数
+SrcDest
をopen/3
.
では、モジュールをロードする上記の 4 つの方法のいずれかが機能するように、準パスを実際のパスに処理するにはどうすればよいでしょうか?
prolog - プロローグ ファイルで起動されたルールを見つける
私は、与えられた背景事実で与えられた述語ボンガード(A、X)を分類するプロローグファイルを持っています。ルールの抜粋:
このプログラムを次のように実行しています: swipl -s file.pl -g "bongard(a, X), write(X)"
、この述語の分類を取得します。
ここで、どのルールがトリガーされ、実際に変数を制限したかを知りたいと思います。これを行うためのきちんとした方法はありますか?現在、n個のルールを持つ元のプロローグファイル用に追加のn個のファイルを保持する必要があります。File1 には最初のルールがあり、file2 には最初の 2 つのルールがあります。このように、File2 がルールを分類すると、2 番目のルールが実行されたことがわかります。
誰かがこれについてより良い提案をしていますか?
編集:述語に一意の番号「bongard(A、X、nr)」を与えることについてはどうですか?