我想知道如何在成员谓词中实现追加。
我有成员
member2(X, [X|T]).
member2(X, [H|T]) :- member2(X,T).
我怎样才能实现追加。
谢谢!
答案 0 :(得分:2)
这是append/3
谓词的实现:
append([],X,X).
append([H|T],X,[H|S]) :- append(T,X,S).
您可以使用member/2
定义append/3
谓词,如下所示
member(X,L) :- append(_,[X|_],L).
其中append(_,[X|_],L)
拆分所有可能表单的列表L
(通过重新评估),成员X
与第二个列表[X|_]
的头部统一。