트리 내부의 특정 노드를 검색하는 함수를 구현했습니다. 다음은 기능 그리고 그것은 작동합니다foldl 함수 안에 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'과 일치시킬 수 없습니다"-> 오류는 '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)
미리 감사드립니다.
명확성을 위해 추가해야합니다. 명시 적 서명 서명을 수정하면 다시 입력하는 것이 좋습니다. –