我實現了一個搜索樹內特定節點的函數。 這裏的功能和它的作品:在摺疊函數中添加Writer Monad Haskell
searchTree :: String -> Tree String -> Bool
searchTree value tree =
foldl (\acc x -> if value `elem` x then True else acc) False (levels tree)
於是,我試圖實現相同的功能,但是這一次,我想補充一個作家單子。這一個不起作用,編譯器顯示「無法匹配期望的類型」Writer [String] Bool'與實際類型'Bool'「 - >錯誤位於第4行,在'return True'指令中。
searchTree :: String -> Tree String -> Writer [String] Bool
searchTree value tree =
foldl (\acc x -> if value `elem` x then do
tell ["My logger message "]
return True else acc) return False (levels tree)
在此先感謝。
爲了清楚起見,我們應該補充一點,在修復顯式類型簽名之後,最好先將顯式類型簽名放回原處。 –