我玩弄這個作家單子記錄例如:哈斯克爾記錄與日期時間
http://monads.haskell.cz/examples/example17.hs
我使用它作爲一個玩具問題搞清楚如何使用一個作家單子做記錄。 我想修改程序,所以它輸出每行的日期時間。 我最初的想法是修改logMsg
這樣的:
-- add a message to the log
logMsg :: String -> Writer [Entry]()
logMsg s = do
datetime <- getClockTime
tell [Log 1 (datetime ++ " " ++ s)]
但是,這並不編譯。我想我需要在某處插入IO
。哪裏?幫幫我!
'type WriterIO = WriterT IO Identity'不會編譯,第一個參數是用於記錄的'Monoid'。你可能是指'輸入WriterIO w = WriterT w IO'。 – 2013-02-08 13:49:54
好吧,我也改變了runWriter runWriterT,但現在它說:不能匹配預期類型'(,)t0'與實際類型'IO' 預期類型:WriterT [Entry]((,)t0)a0 Actual類型:WriterIO [條目] [數據包] 在filterAll的呼叫的返回類型中 'runWriterT'的第一個參數,即 '(filterAll規則數據包)' – 2013-02-08 14:10:21