Я хочу написать стратегию для параллельной оценки элементов в массиве. В старых стратегиях для этого использовался parArr
( см. Здесь ). Но этого нет в новом модуле Control.Parallel.Strategies.
Например.
оценка параллельного списка: map f myList `using` parList rdeepseq
Я бы хотел иметь возможность делать что-то вроде: amap f myArr` using` parArr rdeepseq
, где amap
взят из Data.Array.Base и применяет функцию к каждому из элементов (последовательно).
Кажется, что следующее работает, но мне интересно, правильно ли он это делает, и хочу знать, как я могу определить свой собственный parArr
.
Это работает: amap ((+1) `using` rpar) $ Array.array (0,4) [(0,10), (1,20), (2,30), (3,40), (4,50)]