出于好奇,我在 Frege 中尝试了这段代码:
println (mydrop 30000000 [1..30000001])
不言而喻,3000 万个条目的序列有点傻,我会接受 OOME。我想看看惰性评估是否在这里有所作为。结果是,尽管我所有的 8 个内核都以 100% 的速度耗尽并一直呆在那里,直到我硬杀死了这个过程。
我是否达到了系统的上限?
我应该提到我使用了真实世界的 Haskell 练习中的 mydrop:
mydrop n xs = if n <= 0 || null xs
then xs
else mydrop (n-1) (tail xs)