Wil*_*son 10 haskell functional-programming lazy-evaluation ghc sieve-of-eratosthenes
在关于素数的Haskell Wiki文章中,描述了以下Eratosthenes筛选的实现:
primes = 2 : 3 : minus [5,7..] (unionAll [[p*p, p*p+2*p..] | p <- tail primes])
Run Code Online (Sandbox Code Playgroud)
什么时候......
primes !! 2
Run Code Online (Sandbox Code Playgroud)
... Haskell如何在这种特定情况下认识到不要尝试(aka )p尾部的所有东西,而只是设置减去?primes[3..]3
换句话说:Haskell如何知道任何其他p的(或其多个)将不匹配5,这是最终的答案.有一个很好的经验法则可以知道编译器何时足够聪明以处理无限的情况?
| 归档时间: |
|
| 查看次数: |
215 次 |
| 最近记录: |