{-# 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)
ey0jIExBTkdVQUdFIEJhbmdQYXR0ZXJucyAjLX0KCnQgPSA0MDAwMCAtLSDQutC+0LvQuNGH0LXRgdGC0LLQviDQuNGC0LXRgNCw0YbQuNC5LCDRh9GC0L7QsdGLINCy0YvQv9C+0LvQvdGP0LvQvtGB0Ywg0L/RgNC40LzQtdGA0L3QviAxINC80LjQu9C70LjRgdC10LrRg9C90LTRgwogICAgICAgICAgLS0g0Y3QutGB0L/QtdGA0LjQvNC10L3RgtCw0LvRjNC90YvQvCDQv9GD0YLQtdC8INC+0L/RgNC10LTQtdC70LXQvdC+LCDRh9GC0L4g0LTQu9GPIGlkZW9uZSfQstGB0LrQuNGFINC80LDRiNC40L0g0Y3RgtC+INC30L3QsNGH0LXQvdC40LUgfjQwMDAwCgpzbGVlcCB4ID0gKGFwcGx5ICh0KngpIGlkIHgpIGBzZXFgICgiSSd2ZSB3YWl0ZWQgfiIgKysgc2hvdyB4ICsrICIgbWlsbGlzZWNvbmRzIHRvIHRlbGwgdGhpczogJ3BpcGlzaXVuY2hpaycuIikKCi0tIGFwcGx5INC/0YDQuNC80LXQvdGP0LXRgiDRhC3RhtC40Y4gZiDQuiB4IG4g0YDQsNC3CmFwcGx5IDAgXyAheCA9IHgKYXBwbHkgIW4gIWYgIXggPSBhcHBseSAobiAtIDEpIGYgKGYgeCkKCm1haW4gPSBwdXRTdHJMbiAkIHNsZWVwIDEwMDAw