{-# LANGUAGE BangPatterns #-} t = 40000 -- количество итераций, чтобы выполнялось примерно 1 миллисекунду -- экспериментальным путем определено, что для ideone'вских машин это значение ~40000 sleep x = (apply (t*x) id x) `seq` ("I've waited ~" ++ show x ++ " milliseconds to tell this: 'pipisiunchik'.") -- apply применяет ф-цию f к x n раз apply 0 _ !x = x apply !n !f !x = apply (n - 1) f (f x) main = putStrLn $ sleep 10000