我需要一些Int
s作爲種子隨機數生成,所以我想使用系統時間作爲種子的舊技巧。如何使用Data.Time.Clock在Haskell中獲取系統時間?
於是,我就用Data.Time包,我設法做到以下幾點:
import Data.Time.Clock
time = getCurrentTime >>= return . utctDayTime
當我運行時我得到的東西,如:
Prelude Data.Time.Clock> time
55712.00536s
類型的time
是IO DiffTime
。我期望看到一個IO Something
類型,因爲這取決於程序外部的東西。所以我有兩個問題:
a)是否有可能以某種方式展開IO並獲取底層DiffTime值?
b)如何將DiffTime轉換爲一個整數值並以秒爲單位?有一個功能secondsToDiffTime
,但我找不到它的逆。
爲了簡單起見,特別是對初學者,你可以省略括號作爲回報。 f和whow空格式do語法? – codebliss 2010-01-22 03:03:23
@codebliss:對於一個初學者,我想讓事情變得非常明確,所以不需要讀者理解運算符優先級或佈局的細節 – 2010-01-22 10:35:36
因爲每個monad都是一個函數,所以你也可以做'f <$>時間'。 IMO看起來很不錯。 – 2013-02-19 06:54:52