問題タブ [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.

0 投票する
3 に答える
3196 参照

prolog - プロローグ: 変数のすべての可能な値を取得する

私はProlog Tutorial 2.1に従っています。

プログラム

印刷し2ます。

ただし、チュートリアルに従って、可能な値のリストを出力することを想定しています。

同じ結果を得るためにのみ repl で再試行します。

変数の可能な値のリストを取得/印刷するにはどうすればよいですか?

0 投票する
0 に答える
70 参照

prolog - プロローグでREPL経由でロードされたファイルを開く方法は?

Prolog、または少なくとも SWI-Prolog では、次のように入力してファイルをロードできます。

また

また

また

ただし、ロードされるファイルを前処理したいので、上記のシングルトン リストの内容を互換性のあるファイル パスにする必要があり、それを の最初の引数として使用しますopen/3。現在動作するもの:

  1. を使用して REPL からクエリをキャッチするためのフックexpand_query/4
  2. シングルトン リスト式のマッチングと 1 つの要素の変数へのバインド

機能しないもの:

  • »2.« で述べた変数+SrcDestopen/3.

では、モジュールをロードする上記の 4 つの方法のいずれかが機能するように、準パスを実際のパスに処理するにはどうすればよいでしょうか?

0 投票する
1 に答える
80 参照

prolog - プロローグ ファイルで起動されたルールを見つける

私は、与えられた背景事実で与えられた述語ボンガード(A、X)を分類するプロローグファイルを持っています。ルールの抜粋:

このプログラムを次のように実行しています: swipl -s file.pl -g "bongard(a, X), write(X)"、この述語の分類を取得します。

ここで、どのルールがトリガーされ、実際に変数を制限したかを知りたいと思います。これを行うためのきちんとした方法はありますか?現在、n個のルールを持つ元のプロローグファイル用に追加のn個のファイルを保持する必要があります。File1 には最初のルールがあり、file2 には最初の 2 つのルールがあります。このように、File2 がルールを分類すると、2 番目のルールが実行されたことがわかります。

誰かがこれについてより良い提案をしていますか?

編集:述語に一意の番号「bongard(A、X、nr)」を与えることについてはどうですか?