Timeout für reine Funktionen

Wie kann ich eine reine Berechnung "töten", die zu lange dauert? Ich habe es versucht

<code>import System.Timeout

fact 0 = 1
fact n = n * (fact $ n - 1)

main = do maybeNum <- timeout (10 ^ 7) $ (return . fact) 99999999
          print maybeNum
</code>

Dies funktioniert jedoch nicht. Ersetze das(return . fact) 99999999 mit einer "echten" IO-Funktion wiegetLine und das funktioniert wie erwartet.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage