時間がかかりすぎる純粋な計算を「強制終了」するにはどうすればよいですか? 私は試した
import System.Timeout
fact 0 = 1
fact n = n * (fact $ n - 1)
main = do maybeNum <- timeout (10 ^ 7) $ (return . fact) 99999999
print maybeNum
ただし、これは機能しません。(return . fact) 99999999
を「実際の」IO関数に置き換えるgetLine
と、これは期待どおりに機能します。