Gegeben:Verständnis `RunEval` - Nicht WHNF?
Prelude> import Control.Parallel.Strategies
Prelude> import Control.Parallel
Prelude> let fact n = if (n <= 0) then 1 else n * fact (n-1) :: Integer
Prelude> let xs = map (runEval . (\x -> return x :: Eval Integer) . fact) [1..100]
Prelude> let ys = map fact [1..100]
Prelude> :sprint xs
xs = _
Prelude> :sprint ys
ys = _
Wie ich verstehe, xs
ist in Weak Kopf Normalform. Warum das? Hat die runEval
keinen Einfluss darauf, den Wert/die Berechnung in die Normalform zu bringen?
Warum der Downvote? –
Wahrscheinlich, weil Sie nicht angegeben haben, woher 'runEval' oder' Eval' kommen. –
danke, David. Ich habe normalerweise 'import's - meinen Fehler. –