fork download
  1. {-# LANGUAGE BangPatterns #-}
  2.  
  3. t = 40000 -- количество итераций, чтобы выполнялось примерно 1 миллисекунду
  4. -- экспериментальным путем определено, что для ideone'вских машин это значение ~40000
  5.  
  6. sleep x = (apply (t*x) id x) `seq` ("I've waited ~" ++ show x ++ " milliseconds to tell this: 'pipisiunchik'.")
  7.  
  8. -- apply применяет ф-цию f к x n раз
  9. apply 0 _ !x = x
  10. apply !n !f !x = apply (n - 1) f (f x)
  11.  
  12. main = putStrLn $ sleep 3500
Success #stdin #stdout 3.54s 3592KB
stdin
Standard input is empty
stdout
I've waited ~3500 milliseconds to tell this: 'pipisiunchik'.