2014-05-03 19 views
3

我在閱讀真實世界Haskell;在第9章中,示例使用System.Directory的函數getModificationTime,該函數的返回類型爲ClockTime,但我認爲在較新版本的System.Directory中,它具有不同的返回類型。 :T getModificationTime返回此:getModificationTime返回類型不再System.ClockTime

getModificationTime 
:: FilePath -> IO time-1.4.0.1:Data.Time.Clock.UTC.UTCTime 

我可以得到它通過

import Data.Time.Clock 

的工作,但我的問題是,爲什麼新的返回類型爲

IO time-1.4.0.1:Data.Time.Clock.UTC.UTCTime 

不僅僅是UTCTime?是因爲該類型來自未導入的模塊?

System.TimeData.Time.Clock有什麼區別?後者是否可取?

+0

您正在使用哪個版本的GHC? –

+0

The Glorious Glasgow Haskell Compilation System,版本7.6.3 – swang

回答

1

推薦的時間功能已更改。來自time包的Data.Time等是對Haskell時間函數的完全且更合理的重寫。引用的 http://hackage.haskell.org/package/old-time-1.1.0.2/docs/System-Time.html頂部:

從哈斯克爾98.該庫已被棄用的標準時間庫,請看看Data.Time的時間包來替代。

+0

謝謝,你知道什麼類型的時間-1.4.0.1:Data.Time.Clock.UTC.UTCTime是什麼意思?是之前的那個位置:因爲我沒有導入庫? – swang

+0

@swang是的,這就是原因。 ':'之前的部分是包名稱,然後是模塊名稱,然後是類型名稱本身。所以如果你導入模塊,它全部變成'UTCTime'。 –