問題タブ [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 が 1 つのソリューションを返すようにし、クエリ オプションの表示を停止する
私はプロローグが初めてで、1つの答えが見つかった後にクエリを停止する方法を試しています。私はこのコードを使用しています:
結果は次のとおりです。
Prolog に「true ?」の出力を停止させる方法がわかりません。代わりに「はい」と出力するだけです。if/else コンストラクトと format 関数を使用してみましたが、それでも「true ?」と出力されます。何か案は?
prolog - プロローグ 解決策を見つけて False を返すときにバックトラックする
私は Prolog を (SWI-Prolog を使用して) 試してみましたが、すべてが思いどおりに機能します。つまり、ロジックは正しく計算され、適切なソリューションが見つかりますが、バックトラッキング全体が私を台無しにしています。
コードは次のとおりです。
非常に基本的なもの。クエリの結果として得られるものは次のとおりです。
メモ 1 と 2 からわかるように、ヒット;
して先に進むのを待ってから、最初のソリューションを null と見なし、最終的に false を出力します。
カットを使用してこの動作をより適切に制御できますが、次のコマンドも適切に機能するようにしたいと考えています。
と:
これらの 2 つのコマンドは、まさに私が望む方法でソリューションを提供します。私を壁に押し上げているのは、メモ1と2のものだけです。と の機能を現在のように維持しながら、tall(X).
との機能を好みに合わせてlist_all_tall.
修正する方法はありますか。tall(a).
tall(b).
true.
tall(a).
tall(b).
率直な回答をする代わりに、誰かが実際に自分で修正する方法を説明してくれるとありがたいです.Prologでの私の考え方はすべて下手なのかもしれません.
PS: 背が高い、痩せている、太っている、ハンバーガーを食べる、ビデオゲームをする、菜食主義者を攻撃する意図はありません。
prolog - 自動結果表示?
SWI-Prolog インタープリターが自動的にセミコロンを実行するようにするにはどうすればよいですか? バックトラッキングのために多くの結果 (約 300) があり、それらすべてにセミコロンをプッシュしたくありません。
すべてのソリューションのリストは必要ありません。セミコロンやスペースを押したくないだけなので、バックトラックされたソリューションをバックグラウンドで出力するプログラムをそのままにしておくことができます。
prolog - プロローグ: 停止条件?
これは非常に些細な Prolog ナレッジ ベースです。
次のクエリを実行しました。答えが正しい名前 (のみ) である場合もあれば、正しい名前で「false」である場合もあることに注意してください。
誰かがこの一見一貫性のない動作を説明できますか? 前もって感謝します。
prolog - 最初の回答の後、Prolog は「char_code/2: 'character_code' が原因で表現できません」というエラーを表示します。
通常の状況では";"
、次の回答があればそれを表示するために使用できます。
しかし、私がこれを行うと、それは私を示しています
の代わりに";"
を使用する"shift + ;"
と、プロローグでプロンプトが表示されます
と入力する";"
と、指定可能な回答が1つずつ表示されます。
何が問題ですか?
prolog - SWI-Prolog が 9 つを超える変数にラベルを付けない
制約付きの 10 個の変数が必要ですが、Prolog は 9 にしかラベルを付けません。私のコードは次のとおりです。
注:ins 1..9
変数が 9 つある場合は
問題なく動作します。