我需要在Prolog中编写一个程序,它应该删除列表中的每个第二个元素.应该这样工作:[1,2,3,4,5,6,7] - > [1,3,5,7]
到目前为止我有这个,但它只是返回"假".
r([], []). r([H|[T1|T]], R) :- del(T1,[H[T1|T]], R), r(R). del(X,[X|L],L). del(X,[Y|L],[Y|L1]):- del(X,L,L1).
这是Landei在特定Prolog语法中的答案:
r([], []).
r([X], [X]).
r([X,_|Xs], [X|Ys]) :- r(Xs, Ys).
第二个谓词不是必需的.