arrays - 在 Haskell 中就地修改数组?
问题描述
我们都知道以函数样式修改列表的成员非常慢(向量为 O(n),树为 O(log n)),因此 ghc 编译器中是否有优化此操作以在 -地方修改?如果可以,需要什么条件?如果修改发生在函数中,并且您要修改的列表是其参数之一,它是否有效?
解决方案
不,编译器不会检测到纯数据结构的“修改”,将它们变成就地修改。如果您真的需要可变数组的性能特征,则必须明确使用它们(正如 Willem 在评论中提到的那样)。
推荐阅读
- python-3.x - 排序测试用例执行 - Pytest
- c++ - .SO 和 .DLL 库的可重定位代码
- sql - SQL Plus Dot Net - 电话格式标记不起作用
- javascript - 当我从数组中删除一个元素时,为什么它会同时删除该数组和行代码中未提及的另一个数组?
- c# - 如何将模型从数据库传输到编辑页面?
- r - 如何生成具有简单功能的重复代码?
- excel - 参考单元格中的 Excel 2010 SUMIFS 标准数组不起作用
- vb.net-2010 - 如何修复 InvalidArgument=“3”的值对“索引”无效。参数名称:导出listview项到excel中的索引
- ios - 如何从给定的数字中找到一个随机组合,这些组合在 Swift 中加起来是另一个数字?
- angular - 反应式表单多个复选框选择所有不工作