3

xネストされたリストのメンバーかどうかを確認したいので、

member(x,[a,b,[c,d],[e,[f,g],[x,i]]])

Trueを返しFalseますx。これはどういうわけか可能ですか?

4

3 に答える 3

0

これにより、単純なリストでメンバーを見つけることができます。( _ ) -> シングルトン変数

//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
于 2016-03-05T19:48:43.473 に答える