考虑到Python中的以下示例,我想知道如何在Haskell中实现同样有效且并行的代码。
Python中的第一个例子:功能映射
f = lambda x: 2*x
print map(f, [1,2,3,4])
Python中的第二个例子:functional reduce
g = lambda x,y: x*y
print reduce(g, [1,2,3,4], 1)
我希望Haskell中的并行代码能够有效地利用多核处理器。
注意:这些只是玩具的例子,我不打算加速这些玩具示例。它们只是为了说明如何实现操作符映射并与Haskell并行减少。
答案 0 :(得分:1)
对于功能映射,Haskell中的等效顺序版本将是:
f x = 2*x
dxs = map f [1,2,3,4]
main = print dxs
Haskell中的并行版本将是:
import Control.Parallel.Strategies
import Control.Parallel
f x = 2*x
dxs = parMap rpar f [1,2,3,4]
main = print(dxs)
答案 1 :(得分:0)