Haskell中的当前时间
我试图创建一个助手函数,它以天的格式给出日期,因此我有以下代码Haskell中的当前时间,haskell,Haskell,我试图创建一个助手函数,它以天的格式给出日期,因此我有以下代码 localDay :: Day localDay = do now <- liftIO $ getCurrentTime utctDay now localDay::Day localDay=do 现在getCurrentTime::IO UTCTime,因此您不能简单地返回Day值;您只能返回一个IO Day值(忽略unsafePerformIO) getCurrentTime::IO UTCTime,因此不能简
localDay :: Day
localDay = do
now <- liftIO $ getCurrentTime
utctDay now
localDay::Day
localDay=do
现在getCurrentTime::IO UTCTime
,因此您不能简单地返回Day
值;您只能返回一个IO Day
值(忽略unsafePerformIO
)
getCurrentTime::IO UTCTime
,因此不能简单地返回天
值;您只能返回一个IO Day
值(忽略unsafePerformIO
)
在这种情况下为什么使用liftIO
?liftIO::MonadIO m=>IO a->ma
用于将一个IO操作提升到另一个能够执行IO的monad中;它不允许您完全退出IO
monad。在这种情况下为什么要使用liftIO
?liftIO::MonadIO m=>IO a->ma
用于将一个IO操作提升到另一个能够执行IO的monad中;它不允许您完全退出IO
monad。
Couldn't match type ‘m0 b0’ with ‘Day’
Expected type: m0 UTCTime -> (UTCTime -> m0 b0) -> Day
Actual type: m0 UTCTime -> (UTCTime -> m0 b0) -> m0 b0
In a stmt of a 'do' block: now <- liftIO $ getCurrentTime
In the expression:
do { now <- liftIO $ getCurrentTime;
utctDay now }
In an equation for ‘localDay’:
localDay
= do { now <- liftIO $ getCurrentTime;
utctDay now }
localDay :: IO Day
localDay = fmap utctDay getCurrentTime