問題タブ [prolog-dif]

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 投票する
5 に答える
408 参照

list - プロローグのリスト内の値とその値のすべての重複を削除します

プロローグのリストから値を削除するのに問題があります。色のリストがあり、それに色のリストを追加し、重複していないすべての値を保持して残りを削除したいと考えています。

紫がこのリストに 2 回表示されているので、両方とも削除したいと思います。これは私が返したいリストです。

私は現在、すべての重複を削除するためにこれを持っていますが、両方の紫を出すことはできません.

これは私が今得た結果です:

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

list - 右端の出現を維持しながら、リストから重複を削除します

最も右側の出現を維持しながら、リストから重複を削除しようとしています。例:これ[1,2,3,1,2][3,1,2] Prolog での最初の試行の 1 つであり、何が間違っているのかわかりません。常に false を返します。これは私のコードです:

0 投票する
4 に答える
671 参照

list - 条件に基づいてプロローグでリストを分割する

私はリストを持っています

私の目的は、それを分割することです

これまでに実装した述語

初心者の質問学習のプロローグで申し訳ありません。

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

prolog - Prolog ルールのゴール (ステートメント) の順序

私は最近 Prolog を勉強し始め、1 つの奇妙な問題に直面しました。ここでは、関係のツリーと 2 つのタスクのソリューションを提供するコード例 (私はSWI-Prolog 7.2.3を使用しています)を見ることができます。

dave の親戚を取得したいときは、次のようにします。

次に、相対次の方法の定義を変更します。

最後のステートメントの目標の順序を変更するだけです。そして今、私は次の出力を持っています:

出力に dave が表示されます。どうしてそうなった?私は X \== Y と書きました... 誰かこれについて良い説明をしてくれませんか?

そしてもう1つ質問です。プログラムで同じ答えを書かないようにするにはどうすればよいですか?

ありがとうございました!

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

list - 複数のリスト要素が 1 つだけ出現するリストを作成する

私はPrologが初めてで、理解しようとしています。

私はいくつかの簡単なプログラムから始めました。これは次のようにする必要があります。

  • 要素がリストの残りの部分に含まれているかどうかを確認します
    • FALSE の場合は何もしない
    • TRUE の場合、2 番目のリストに追加します。(2 番目のリストには char を 1 回だけ追加する必要があります)。

期待される結果の例:

これが私が書いたコードですが、いくつか問題があります (常に を返しますtrue)。

デバッガーを使用してみましたが、not(member(X,Y))is alwaysfalseであり、バインディング セクションにはXand Xsand neverしかないことがわかりましたY。どんなアドバイスでも大歓迎です!ありがとうございました。

アップデート

私はそれを解決したと思います、これがコードです:

しかし、なぜ今それが機能するのかよくわかりません... 3番目にwithoccを変更しました..しかし、なぜ結果が変わるのですか?_Y[]

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

list - プロローグ not_member その仕事をしないでください

ここに Prolog の問題があります。一意の空港をリストに追加しようとしていますが、述語が期待どおりに機能しません。

予想される回答を含むクエリの例:

事実が必要な場合はお知らせください。ご協力をお願いいたします。ありがとう!

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

prolog - 2 人が同じ趣味のときに true を返す Prolog Predicate

否定を使わずに、2 人が同じ趣味を持っている場合に true を返す Prolog 述語を書きたいと思います。次のデータベースがあります。

次の述語を思いつきました。

ただし、この述語はX等しい場合にも真Yであり、私はこれが当てはまりたくありません。誰でも解決策を見つけるのを手伝ってもらえますか? 小さな説明も大歓迎です。