問題タブ [prolog-anonymous-variable]
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 - プロローグ:1つ以上の匿名変数のマッチング
[_、[X、_]、_]は[d、[X、a]、s]のようなリストに一致します。1つ以上の匿名変数があるパターンに一致させる方法はありますか?すなわち。[[X、a]、s]と[[d、a]、[p、z]、[X、b]]は一致しますか?
リスト内の要素を数えるプログラムを書こうとしています。[a、a、a、b、a、b] => [[a、4]、[b、2]]しかし、私は立ち往生しています:
ありがとう。
prolog - プロローグ匿名変数の比較
私は匿名変数を含む一連の事実をプロローグに持っています_
。
そして私はこれらの事実のリストを取り入れたいくつかのルールを持っています:
ただし、これは機能していません。ルールは最初の句を超えていませんH == fact(a, _)
。私は何が間違っているのですか?平等のための別の演算子はありますか?
prolog - プロローグ無名変数
Prolog変数について私が理解したことは次のとおりです。
単一のアンダースコアは、発生するたびに新しい変数のような無名変数を表します。
_W のようなアンダースコアで始まる変数名は無名変数ではありません。または、Prolog 内で生成された変数名 (_G189 など) は匿名とは見なされません。
理解を助けていただけますか?
ところで、上記の例はいくつかのチュートリアルから取得しましたが、SWI-Prolog バージョン 6 で実行すると、次のようになります。
ありがとうございます。
prolog - プロローグとリストの統合
私は、Prolog と、それがどのように統合を処理するかについての理解を深めようとしています。この場合、リストとの統合をどのように処理するか。
これは私の知識ベースです。
プロセスを正しく理解している場合。が true でない場合member(X, [X|_])
は再帰規則に移動し、X
listT
にある場合[_|T]
は に統合されT
ます。
では、再帰述語の無名変数はどうなるでしょうか? 廃棄されますか?[_|T]
1 つではなく 2 つの変数であるため、リストを使用した正確な統合プロセスを理解するのに苦労しています。統一プロセスがリストで正確にどのように機能するかを理解しようとしています。
prolog - Prolog で匿名変数と「通常の」変数を使用する場合の異なる回答
次のデータベースがあります。
クエリvegetarian(_).
を実行すると、取得することを期待していましたが_ = jose; _ = james.
、代わりに取得していますtrue; true.
代わりに を実行するvegetarian(X).
と、期待どおりの答えが得られますX = jose; X = james.
なぜこの違いがあるのでしょうか?