|
1
21
下面是一个简短的haskell函数,它枚举 Literate Programs:
显然,这是 不 埃拉托斯特尼的筛子(谢谢,兰迪)。我认为这仍然是一个很有启发性的例子,它表明你可以用haskell编写非常优雅、简短的代码,并说明选择错误的数据结构会严重损害效率。 |
|
2
18
我建议从本文中选择一个实现: http://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf |
|
3
8
在haskell wiki中,有许多解决方案可以延迟生成素数序列。第一个也是最简单的是 Postponed Turner sieve : (旧版本…铌)
|
|
|
4
1
来自@nikie的公认答案不是很有效,在几千次之后会变得相对缓慢,但是@sleepynate的答案要好得多。我花了一些时间来理解它,因此这里有相同的代码,但只是用变量命名更清楚:
其主要思想是,下一个素数的候选数已经不包含任何可被小于给定给函数的第一个素数的任何素数除尽的数字。所以如果你打电话
候选列表中没有可被除的数字
|
|
5
1
用
二
在列表中,对于每个整数
|