首页 文章

消除副作用如何促进并行和并发编程?

提问于
浏览
0

是否有任何成功和实用的函数式语言(如Erlang)或库基于这样的假设,即用这种语言编写的程序没有副作用或只有受控制的副作用(例如,由Monad表示,因此可以检测到并由编译器分隔)

1 回答

  • 0

    这很大程度上是Why is there no implicit parallelism in Haskell?的重复

    答案是肯定的,有自动化的并行方法依赖于没有副作用 . 例如 . Haskell中的嵌套数据并行性 . 当预先知道成本模型时,全自动方法往往效果最好,例如并行阵列编程 .

    但是,如果您愿意添加一些自己的注释,您仍然可以利用不变性来获得加速 . 例如 par 注释Haskell是具有良好功率重量比的示例 .

相关问题