我是Prolog的新手,现在我不知道这个线索"元素E不在列表L&#34中的第4位;
value.share value.like
2 10
我将列表比作
L = [_,_,_,E] => false
然后我使用一些像这样的愚蠢方式
set_equal([],[]).
set_equal([H|T],R):-
member(H,R),
remove(H,R,Rez),
set_equal(T,Rez).
或
notin4(X,L):-
set_equal([X,_,_,_],L)
; set_equal([_,X,_,_],L)
; set_equal([_,_,X,_],L).
但它不起作用:(
有人能指出我解决这个线索的另一种方法吗? 非常感谢你!
答案 0 :(得分:2)
最简单的方式是:
list_not_nth(List, N, X) :-
nth1(N, List, Y),
dif(X, Y).
如果你知道你正在寻找第4个元素,你可以这样做:
list_not_4th([_,_,_,X|_], Y) :-
dif(X, Y).