- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
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 1000
Спешу представить вам плод моего безделья: чистая ф-ция sleep на Haskell!
Тесты:
1sec - http://ideone.com/sLxRx
3.5sec - http://ideone.com/vn4Fd
10sec - http://ideone.com/U8s36
vistefan 31.07.2012 22:50 # +5
Или это вынужденно на практике используется?
zim 31.07.2012 22:51 # −5
Нет конечно, это просто мне делать нечего было.
vistefan 31.07.2012 22:52 # +4
zim 31.07.2012 22:59 # −5
vistefan 31.07.2012 23:00 # +4
guest8 27.05.2019 18:06 # −999
guest8 27.05.2019 21:59 # −999
PA3yMHblu_nemyx 28.05.2019 02:21 # 0
guest8 28.05.2019 02:26 # −999
MAKAKA 20.08.2021 22:19 # 0
guest 31.07.2012 22:51 # +3
zim 31.07.2012 23:00 # −3
TheHamstertamer 31.07.2012 23:08 # +12
roman-kashitsyn 31.07.2012 22:54 # +10
istem 31.07.2012 23:02 # −1
vistefan 31.07.2012 23:03 # +2
USB 31.07.2012 23:56 # +8
dos_ 01.08.2012 12:49 # −3
guest 03.08.2012 12:18 # −8
guest 03.08.2012 12:20 # +2
bormand 03.08.2012 15:21 # +6