問題タブ [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 投票する
1 に答える
3156 参照

prolog - SWI-Prolog が最初の答えしか返さないのはなぜですか?

私はプロローグが初めてです。私は学ぶために簡単な例を試しています。次の行を含むこの.plファイルがあります。

コンサルティングとテストの後、最初の回答のみが表示されます。例えば:

関係を満たすすべての組み合わせを与えることになっていませんparentか?

誰が問題が何であるか知っていますか?

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

prolog - この 3 つのルールを結び付けるのに苦労しています

次の 3 つのルールを一緒に接続する際に問題が発生しています。

countcombo は追加リストを作成します。membersofcombo は、そのリストを並べ替えてから、元の追加リストの各メンバーを生成します。count ルールは、各メンバーの出現回数をカウントします。

membersofcombo と count は連携して動作しますが、countingcombo をコンボのメンバーに接続することはできません。

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

prolog - プロローグ。クエリで、結果に含めたくない変数に条件を付けるにはどうすればよいですか?

それぞれの人に名前と年齢を与える次の知識ベースがあると想像してください。

ここで、20 歳以上のすべての人を取得したいと考えています。さらに、年齢ではなく名前を収集したいだけです。maryここでは、 と を取得したいと思いますjohn

これを一般的に Prolog で、より具体的には SWI-Prolog で行う方法は?

次のように、匿名ではない変数を使用する場合:

XProlog は、とYと I do not wantの両方の値を教えてくれますY

_Prolog は 2 つのインスタンス化をリンクできないため、無名変数を使用できません。以下はエラーになります。

それで、これを行う方法は?

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

math - 数学のプロローグ - プロローグでノードのレベルを検索する

ここに二分探索木があると仮定し、 above(X,Y)-Xが のすぐ上にあるという規則が与えられYます。また、ルールを作成しましたroot(X)-X親がありません。

次に、このツリーのノードの深さを把握しようとしていました。ツリーのルートノードが「r」であると仮定すると、事実が得られましたlevel(r,0)。ルールを実装するためにlevel(N,D) :-、私が考えていたのは、ここに再帰が必要だということです。したがって、私は試しました

したがって、Nがルートでない場合は、ノードが1 つXNのレベルDにあり、再帰があります。しかし、これをテストしたところ、ルート条件でのみ機能します。ノード "s" がノード "r" の leftchild であるなど、さらにファクトを作成したとき、私のクエリは level(s,D) です。それは私に「いいえ」を返します。私はクエリをたどりました、それは私を示しています

を呼び出したときになぜ失敗するのか混乱しています level(s,D)か?

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

syntax - Prolog でセミコロンを自動化する方法

クラスで Prolog について学んでいて、解決策がなくなるまでセミコロン キーを自動的に押す方法を教えてもらいました。Google で検索してみましたが、findall表示されていないものを使用した例が表示されます。;Prolog シェルを自動的に押す他の方法はありますか?

たとえば、;繰り返し押すことなくすべてのソリューションを表示します。

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

prolog - true/false を返すクエリ

私は最近学習Prologを始め、問題に遭遇しました。

以下が にロードされましたProlog:

のすべての人がの果物のようになった場合all_like(What, List)に返される述語を書いています。TrueListWhat

例えば:

返す必要があります:

all_like(grapes,[john, bill]).

返す必要があります:

次のコードがあります。

私の結果は次のとおりです。

最初のクエリ

2 番目のクエリ

なぜ私がこれらの結果を得ているのか誰にも分かりますか?

出力される 2 番目のブール値の意味は何ですか?

最後に、.重要なスペースの後に出現することはありますか?

ご協力ありがとうございました。

0 投票する
2 に答える
282 参照

prolog - プロローグが回答の完全なリストを表示しない

human(Who).以下の.plファイルでクエリを実行すると

戻るだけWho = ann .

それ以外の

プロローグ 6.6.6 を使用しています。完全なリストを表示するにはどうすればよいですか?