問題タブ [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 - SWI-Prolog が最初の答えしか返さないのはなぜですか?
私はプロローグが初めてです。私は学ぶために簡単な例を試しています。次の行を含むこの.pl
ファイルがあります。
コンサルティングとテストの後、最初の回答のみが表示されます。例えば:
関係を満たすすべての組み合わせを与えることになっていませんparent
か?
誰が問題が何であるか知っていますか?
prolog - この 3 つのルールを結び付けるのに苦労しています
次の 3 つのルールを一緒に接続する際に問題が発生しています。
countcombo は追加リストを作成します。membersofcombo は、そのリストを並べ替えてから、元の追加リストの各メンバーを生成します。count ルールは、各メンバーの出現回数をカウントします。
membersofcombo と count は連携して動作しますが、countingcombo をコンボのメンバーに接続することはできません。
prolog - プロローグ。クエリで、結果に含めたくない変数に条件を付けるにはどうすればよいですか?
それぞれの人に名前と年齢を与える次の知識ベースがあると想像してください。
ここで、20 歳以上のすべての人を取得したいと考えています。さらに、年齢ではなく名前を収集したいだけです。mary
ここでは、 と を取得したいと思いますjohn
。
これを一般的に Prolog で、より具体的には SWI-Prolog で行う方法は?
次のように、匿名ではない変数を使用する場合:
X
Prolog は、とY
と I do not wantの両方の値を教えてくれますY
。
_
Prolog は 2 つのインスタンス化をリンクできないため、無名変数を使用できません。以下はエラーになります。
それで、これを行う方法は?
math - 数学のプロローグ - プロローグでノードのレベルを検索する
ここに二分探索木があると仮定し、 above(X,Y)
-X
が のすぐ上にあるという規則が与えられY
ます。また、ルールを作成しましたroot(X)
-X
親がありません。
次に、このツリーのノードの深さを把握しようとしていました。ツリーのルートノードが「r」であると仮定すると、事実が得られましたlevel(r,0)
。ルールを実装するためにlevel(N,D) :-
、私が考えていたのは、ここに再帰が必要だということです。したがって、私は試しました
したがって、N
がルートでない場合は、ノードが1 つX
上N
のレベルD
にあり、再帰があります。しかし、これをテストしたところ、ルート条件でのみ機能します。ノード "s" がノード "r" の leftchild であるなど、さらにファクトを作成したとき、私のクエリは level(s,D) です。それは私に「いいえ」を返します。私はクエリをたどりました、それは私を示しています
を呼び出したときになぜ失敗するのか混乱しています level(s,D)
か?
syntax - Prolog でセミコロンを自動化する方法
クラスで Prolog について学んでいて、解決策がなくなるまでセミコロン キーを自動的に押す方法を教えてもらいました。Google で検索してみましたが、findall
表示されていないものを使用した例が表示されます。;
Prolog シェルを自動的に押す他の方法はありますか?
たとえば、;
繰り返し押すことなくすべてのソリューションを表示します。
prolog - true/false を返すクエリ
私は最近学習Prolog
を始め、問題に遭遇しました。
以下が にロードされましたProlog
:
のすべての人がの果物のようになった場合all_like(What, List)
に返される述語を書いています。True
List
What
例えば:
返す必要があります:
all_like(grapes,[john, bill]).
返す必要があります:
次のコードがあります。
私の結果は次のとおりです。
最初のクエリ
2 番目のクエリ
なぜ私がこれらの結果を得ているのか誰にも分かりますか?
出力される 2 番目のブール値の意味は何ですか?
最後に、.
重要なスペースの後に出現することはありますか?
ご協力ありがとうございました。
prolog - プロローグが回答の完全なリストを表示しない
human(Who).
以下の.pl
ファイルでクエリを実行すると
戻るだけWho = ann .
それ以外の
プロローグ 6.6.6 を使用しています。完全なリストを表示するにはどうすればよいですか?