RSEQ
我们可以使用 rseq::Strategy a
强制参数为弱头范式:
f1 :: [Int]
f1 = [1..100000000]
f2 :: [Int]
f2 = [1..200000000]
main = runEval $ do
a <- rpar (f1) -- this'll take a while...
b <- rpar (f2) -- this'll take a while and then some...
rseq a
return (a,b)
这巧妙地改变了 rpar
例子的语义; 而后者将在后台计算值时立即返回,此示例将等到 a
可以被评估为 WHNF。