我正在尝试在erlang中实现一个eratosphenes筛子。但是我无法通过算法的第二步。我用 p 填充标记的条目,这样当我遍历列表直到找到大于 p 的值时,我就会知道它也是素数。
-module(sieve).
-export([primes/0]).
primes() -> L = lists:seq(2,20),
mark(L,2).
mark(L,P) -> mark(L,P,2,[]).
mark([],_,_,N) -> N;
mark([_|T],P,C,N) when C =:= P -> mark(T,P,C+1,[N|[P]]);
mark([H|T],P,C,N) -> mark(T,P,C,[N|[H]]).
我也尝试过附加一个 ++ ,但这会产生相同的结果。