与えられたのはリストと2つの要素です。最初に、2つの要素がリストの一部であるかどうかを確認する必要がありました。その後、要素Elem2
が指定されたリストのElem1
の後に来るかどうかを確認する必要がありました。 私が使用している述語は、引数が3つのweiterHinten
です。要素がリスト内の別の要素の背後にあるかどうかを確認する述語
例:cがリストの[a、c、b、a]の後にbかどうかを確認します。
weiterHinten([H|T],H,B).
weiterHinten([H|T],A,B):-weiterHinten(T,A,B).
weiterHinten([a,c,b,a],b,c).
この目標は、私は、リストのヘッダーがあることを見つけた後A
に等しいことを私はB
は、リストの末尾のメンバーであるかどうかを確認する必要があるだろう、false.Iが知って返す必要があります。そうであれば、それはBがA
の後ろにあることを意味しますが、私はこれを行う方法がわかりません。
weiterHinten([H|T],H,B):-member(B,T).
をしかし、私は目標を呼んでいた時はいつでもElem1
ている私はあなたの質問が何であるかわかりません。 「それはこの方法では動作していません」と指定すると、実際には意味があります。それは何をしているのですか?とにかく、私は答えようとしました、それが助けられたら教えてください。 – user7610
私は目標を呼んでいるときはいつも、Elem2がListのElem1の後ろにあったかどうかにかかわらず、いつも真実に戻っていたことを意味しました。例えば、この目標:?weiterHinten([a、c、b、a]、b、c)。そうでないとしても、真実に戻った。 – UserMeli