使用``Control.Parallel.Strategies``编写并行``zip``

Koz*_*oss 2 parallel-processing haskell

我最近发现了(坦率地说是惊人的)并行性,可以从明智的使用中获得Control.Parallel.Strategies.我很好奇是否可以zip使用提供的工具编写类似并行版本的内容Control.Parallel.Strategies.我在想的是会有以下签名:

parZip :: Strategy (a, b) -> [a] -> [b] -> [(a,b)]

从概念上讲,parMap除了并行执行两个列表而不是一个列表之外,它的工作方式类似.我不确定如何写这个.有人能告诉我我会怎么做(如果可以的话)?

Ale*_*lec 5

我可能会遗漏一些东西,但不仅如此:

parZip :: Strategy (a, b) -> [a] -> [b] -> [(a,b)]
parZip strategy as bs = zip as bs `using` parList strategy
Run Code Online (Sandbox Code Playgroud)

是的,Control.Parallel.Strategies真的很特别.