And... for fun... a refactored version that should scale and also avoid io:format:<div><br></div><div><div>-module(eratos).</div><div><br></div><div>-export([primes/1]).</div><div><br></div><div>primes(Max) -></div><div><span class="Apple-tab-span" style="white-space:pre">    </span>ResultPid = self(),</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>Pid = spawn(fun() -> sieve(ResultPid) end),</div><div>    map(Pid, 2, Max).</div><div><br></div><div>map(Pid, N, Max) when N =< Max -></div><div>    Pid ! N,</div><div>    map(Pid, N + 1, Max);</div><div>map(Pid, _, _) -></div><div>    Pid ! done,</div><div>    reduce([]).</div><div><br></div><div>reduce(Acc) -></div><div>    receive</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>done -></div><div><span class="Apple-tab-span" style="white-space:pre">   </span>    lists:reverse(Acc);</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>Prime -></div><div><span class="Apple-tab-span" style="white-space:pre">  </span>    reduce([Prime|Acc])</div><div>    end.</div><div><br></div><div>sieve(ResultPid) -></div><div>    receive </div><div>    done -></div><div>        ResultPid ! done;</div><div>    Prime when is_integer(Prime) -></div><div>        ResultPid ! Prime,</div><div>        Pid = spawn(fun() -> sieve(ResultPid) end),</div><div>        sieve(Prime, Pid)</div><div>    end.</div><div><br></div><div>sieve(Prime, Pid) -></div><div>    receive</div><div>    done -></div><div>        Pid ! done;</div><div>    N when N rem Prime =/= 0 -></div><div>        Pid ! N,</div><div>        sieve(Prime, Pid);</div><div>    N when is_integer(N) -></div><div>        sieve(Prime, Pid)        </div><div>    end.</div><div><br></div><br><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p></blockquote></div>