Как я могу "убить" чистое вычисление, которое занимает слишком много времени? Я пытался
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
«настоящей» функцией ввода-вывода, такой как getLine
, и она будет работать, как и ожидалось.