だから私は明日のためにこの宿題を持っています。リストのn番目ごとの要素をフィルタリングして、リストとして返す必要があります。したがって、たとえば:
?-everyNth(3、[a、b、c、d、e、f]、Rs)。Rs = [c、f]。
私の考えは基本的に:
everynth(N, [X|Xs], L) :- everynth(N, [X|Xs], N, L).
everynth(N, [], C, L).
everynth(N, [X|Xs], 0, [X]) :- everynth(N, Xs, N, [X]).
everynth(N, [X|Xs], C, L) :- C1 is C -1,
everynth(N,Xs,C1,L).
ただし、この方法では機能しません。これは、3行目でXを一致させようとし、2回目にXとカウント0を返すためです。