如何制作自己的流式代码?我正在生成大约 1,000,000,000 对随机的战争套牌,我希望它们能够懒惰地流入 foldl',但我遇到了空间泄漏!这是代码的相关部分:
main = do
games <- replicateM 1000000000 $ deal <$> sDeck --Would be a trillion, but Int only goes so high
let res = experiment Ace games --experiment is a foldl'
print res --res is tiny
当我使用 -O2 运行它时,它首先开始冻结我的计算机,然后程序死掉,计算机又恢复了活力(然后谷歌浏览器就有了它需要的资源来对我大喊大叫,因为我用光了它的所有资源。)
注意:我尝试了 unsafeInterleaveIO,但没有成功。
完整代码在: http: //lpaste.net/109977