【发布时间】:2012-10-06 17:49:21
【问题描述】:
所以我明天有这个作业。我必须过滤列表的每个第 n 个元素并将其作为列表返回。比如:
?- 每Nth(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).
但它不能以这种方式工作,因为在第三行它尝试匹配 X 和返回 X 以及第二次去那里的 Count 0。
【问题讨论】: