我实现了一个搜索树内特定节点的函数。 这里的功能和它的作品:在折叠函数中添加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)
在此先感谢。
为了清楚起见,我们应该补充一点,在修复显式类型签名之后,最好先将显式类型签名放回原处。 –