0

私はプロローグ初心者なので、ここで質問しています。他の場所で anser を見つけることができませんでした。

私がやろうとしているのは、この機能を別の方法で行うことです:

firstlast([H,H]).
firstlast([F,_|T]):- firstlast([F|T]).

基本的に、2 つ以上の要素を持つリストで最初と最後の要素が同じかどうかを調べます。

今、私はこの関数を追加したいので、再帰の代わりに追加を1回呼び出すだけです。

append([],U,U).
append([H|T],U,[H|V]) :- append(T,U,V).

それがどのように機能するかの例:

firslasta([1,2,3,4,1]).
true.

firstlasta([1,3,4,1,5]).
false-

firstlasta([2,5,2,3,6,2]).
true.

これに関するヘルプは非常に高く評価されます:)。

4

1 に答える 1