プロローグを使用して、リストが与えられたときに、リストの最初の要素がリストの最後の要素と等しいかどうかを判断するルールを作成する必要があります。以下、私の考えです。
The Base Cases:
1) If The Parameter Is Not A List: Return False
2) If The Parameter Is A List But Empty: Return False
3) If The Parameter Is A List But Has One Element: Return False
The Recursive Step:
Recursively Going Through The List Getting The
First Element And TheLast Element Then Compare
fela() :- false. <-- Base Case One
fela([]):-false. <-- Base Case Two
fela([H]):-false. <-- Base Case Three
fela([H|T]):- H1 is H, H1 == T, fela(T,H1). <-- Recursive Step
ベローは、最初、最後、メンバーの関数です
first(F, [F|_]).
last(L, [H|T]) :- last(L, T).
member(X, [X|_]).
member(X, [_|T]) :- member(X, T).
再帰的なステップに問題があります。最初の要素を保存する方法がわかりません。リストを走査して最後の要素を取得し、結果を比較して真/偽の答えを求めます。誰か助けてくれませんか
ありがとう、
エリック:)