2012-07-05 93 views
1

我正在尋找一個Haskell函數,它會產生一個隨着時間的流逝而緩慢變化的值(並且可能會在一段時間後迴繞)。我真的不介意它是IO Integer還是IO Double或什麼。我只想要一個隨着時間的流逝而慢慢變化的值。Haskell壁掛式振盪器

大概有一個答案埋在time包的深處。 (或者可能是old-time,但我認爲這是棄用?)但是,time包似乎真的,真的複雜。關於時區或人類可讀的時間表示或任何其他內容,我實際上並沒有關注。我只想要一個隨着時間的流逝而變化的數字。

任何人都可以給我看一個簡單的代碼片段來做到這一點嗎? (沒有我待上三天試圖找出的time包的複雜性......)

回答

2

Real World Haskell書:

Prelude> import System.Time 
Prelude System.Time> getClockTime 
Loading package old-locale-1.0.0.2 ... linking ... done. 
Loading package old-time-1.0.0.6 ... linking ... done. 
Thu Jul 5 20:04:22 BST 2012 
Prelude System.Time> getClockTime >>= (\(TOD sec _) -> return sec) 
1341515116 
Prelude System.Time> getClockTime >>= (\(TOD sec _) -> return sec) 
1341515118 
Prelude System.Time> getClockTime >>= (\(TOD sec _) -> return sec) 
1341515121 
+0

這大概環繞,每24小時? – MathematicalOrchid 2012-07-05 19:21:21

+0

@MathematicalOrchid:不是的,它是[Unix時間](http://en.wikipedia.org/wiki/Unix_time),永遠佔據上風(這可能是爲什麼它是一個Integer而不是Int,儘管後者很好足夠未來幾年...) – leftaroundabout 2012-07-05 19:28:35

+0

@leftaroundabout好的,這很酷。 :-) – MathematicalOrchid 2012-07-05 19:30:11