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

Parallel processing 如何消除副作用促进并行和并发编程?,parallel-processing,functional-programming,side-effects,Parallel Processing,Functional Programming,Side Effects,是否有任何成功且实用的函数式语言,如Erlang或函数库,都是基于这样的假设,即用这种语言编写的程序没有副作用或只有受控的副作用,例如,由Monad表示,因此可以由编译器检测和分离 答案是肯定的,有一些自动并行方法依赖于没有副作用。 例如,Haskell中的嵌套数据并行性。当成本模型事先已知时,例如在并行阵列编程中,全自动方法往往工作得最好 然而,如果您愿意添加一些自己的注释,您仍然可以利用不变性来获得加速。例如Haskell中的PAR注释是具有良好的功率-重量比的例子。

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

答案是肯定的,有一些自动并行方法依赖于没有副作用。 例如,Haskell中的嵌套数据并行性。当成本模型事先已知时,例如在并行阵列编程中,全自动方法往往工作得最好

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