编写一个 Prolog 谓词everynth(N, X)
,输出列表中的每个N
元素X
。
?- everynth(1, [1, 2, 3, 4, 5, 6]).
1 2 3 4 5 6
true.
?- everynth(2, [1, 2, 3, 4, 5, 6]).
2 4 6
true.
这是我尝试过的,虽然我不知道正确使用递归:
everynth(1, [X|_]) :-
write(X),
write(' ').
everynth(N, [_|H]) :-
M is N - 1,
everynth(M, H).