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