我有一份职能<代码>编号>。 下面是简单的测试案例:
import Control.Parallel.Strategies
import Control.DeepSeq
import System.Environment
frequencyBy :: (a -> b -> Bool) -> [a] -> [b] -> [(a,Int)]
frequencyBy f as bs = map
(a ->(a, foldr ( -> if f a b then (+) 1 else id) 0 bs)) as
main :: IO ()
main = do
x:xs <- getArgs
let result = frequencyBy (==) [1::Int .. 10000] [1 .. (read x)] `using`
parList rdeepseq
print $ product $ map snd $ result
我愿同时管理<条码>><>>>>>>>>>> >编号/代码>。 I m 试图通过parList rdeepseq
做到这一点。 (main
中的所有其他内容只是为了确保并非一切都得到最佳利用。) 然而,这只字塔工作,两条镜头的工作是两倍,一线照相工作。 我不理解我在这里做错的事情。