是否有任何成功和实用的函数式语言(如Erlang)或库基于这样的假设,即用这种语言编写的程序没有副作用或只有受控制的副作用(例如,由Monad表示,因此可以检测到并由编译器分隔)
这很大程度上是Why is there no implicit parallelism in Haskell?的重复
答案是肯定的,有自动化的并行方法依赖于没有副作用 . 例如 . Haskell中的嵌套数据并行性 . 当预先知道成本模型时,全自动方法往往效果最好,例如并行阵列编程 .
但是,如果您愿意添加一些自己的注释,您仍然可以利用不变性来获得加速 . 例如 par 注释Haskell是具有良好功率重量比的示例 .
par
1 回答
这很大程度上是Why is there no implicit parallelism in Haskell?的重复
答案是肯定的,有自动化的并行方法依赖于没有副作用 . 例如 . Haskell中的嵌套数据并行性 . 当预先知道成本模型时,全自动方法往往效果最好,例如并行阵列编程 .
但是,如果您愿意添加一些自己的注释,您仍然可以利用不变性来获得加速 . 例如
par
注释Haskell是具有良好功率重量比的示例 .