【发布时间】:2011-07-31 05:17:16
【问题描述】:
我有一个关于 Haskell 中日期和 String 的初学者问题。
我需要在 Haskell 中以 String 的形式获取部分日期(年、月或日)。我发现,如果我在 GHCi 中写以下两行
Prelude> now <- getCurrentTime
Prelude> let mon = formatTime defaultTimeLocale "%B" now
那么mon 的类型是String。但是,我无法将其放入函数中。例如,我尝试了以下方法:
getCurrMonth = do
now <- getCurrentTime
putStrLn (formatTime defaultTimeLocale "%B" now)
但这返回类型IO (),我需要String(也不是IO String,只有String)。
我知道do 语句创建了一个我不想要的 monad,但我无法在 Haskell 中找到任何其他获取日期的解决方案。
那么,有没有办法写出这样的函数呢?
提前感谢您的帮助!
【问题讨论】:
标签: datetime haskell io monads