![]() |
1
24
需要考虑的事项:
http://hpaste.org/fastcgi/hpaste.fcgi/view?id=27414#a27414
在恒定空间中运行(与
使用具有局部定义的专用状态单子也明显优于Control.monad.Strict。
请注意,它大约快了10倍,并且占用了1/5的空间。最大的问题是你的双打名单被分配。 monad-mersenne-random ,现在您的程序变成:
总的来说,这使您的代码来自,K=500,N=30k 那就是, 快220倍 .
堆也更好了一点,现在iterateM取消了绑定。
|
![]() |
2
6
导入Control.Monad.State.Strict而不是Control.Monad.State可以显著提高性能。不知道你在寻找什么,但这可能会让你达到。 此外,通过交换iterateM和mapM,您可以提高性能,这样您就不必一直遍历列表,也不必保留列表的头,也不需要对列表进行deepseq,只需强制执行单个结果。即。:
如果您这样做了,那么您也可以将iterateM更改为更加习惯用法:
这当然需要bang模式语言扩展。 |
![]() |
3
0
你定义
这将完全评估参数,但是函数结果根本不必评估。如果你想要
|
![]() |
ecology · 基于R中随机生成数集的子集列 2 年前 |
![]() |
Alan Jones · 使用random从列表创建动态列表 2 年前 |
![]() |
breking bed · 单击按钮时如何随机选择唯一编号 2 年前 |
![]() |
Carrot Man · 如何让熊猫数据框随机填充1和0? 2 年前 |
![]() |
Justin Arnold · 范围内的随机数不是随机数 2 年前 |
![]() |
Menna Magdy · 如何使用非模型字段进行过滤? 2 年前 |