x
ネストされたリストのメンバーかどうかを確認したいので、
member(x,[a,b,[c,d],[e,[f,g],[x,i]]])
True
を返しFalse
ますx
。これはどういうわけか可能ですか?
これにより、単純なリストでメンバーを見つけることができます。( _ ) -> シングルトン変数
//Base Case
member(X, [X | _ ]).
member(X, [ _ | T]) :- member(X, T).
これにより、単純なリストの定義を使用して、ネストされたリスト内のメンバーを見つけます。
nestedListMember(X, [H | T]) :-
member(X,H);
nestedListMember(X,T). %Recursive call looking in the tail
nestedListMember(X,[T]) :-
nestedListMember(X,T). %You look for all the subsequent cases