1

プロローグ演習のトレーニング中にいくつかの問題が発生しました。以下の問題は、

述語は、ツリーであるとはどういう意味かを定義し、用語がツリーであるかどうかをテストするために使用できます。

tree(t(L,R)) :- tree(L), tree(R).

tree(T) :- T\=t(_ , _).

この述語を使用すると、ツリー内の要素 (リーフと呼ばれます) を見つけることができます。

leaf(t(L,R),E) :- leaf(L,E);  leaf(R,E).

leaf(T,T) :- T\=t(_ , _).

したがって、ここには 2 つの問題があります。1 つ目はelements/2、最初の引数のツリーの葉で見つかった要素のリストを左から右の順序で生成する書き込み述語です。

content/22 つ目は、2 つのツリーに同じ要素が同じ順序で含まれている場合に正確に成功する述語 same を記述します。重複は重要です。

プロローグが得意な人なら誰でも助けてくれるといいのですが、どうもありがとう。

4

1 に答える 1