I somehow cannot figure this out. Tree is Foldable so I can use "find" on it. But how can I use find on TreeLoc? Am I missing something obvious?
Dan Weston <weston...@imageworks.com> wrote: > I think you want > > find :: Foldable t => (a -> Bool) -> t a -> Maybe a > > > Jian Fan wrote: >> Hi, >> >> There doesn't seem to be a function to search the tree so >> I come up with following function: >> >> searchTree :: (a -> Bool) -> TreeLoc a -> Maybe (TreeLoc a) >> searchTree pred rootLoc = >> if pred (getLabel rootLoc) then >> Just rootLoc >> else case firstChild rootLoc of >> Just loc -> case searchTree pred loc of >> Just loc -> Just loc >> Nothing -> case right loc of >> Just rLoc -> searchTree pred rLoc >> Nothing -> Nothing >> Nothing -> Nothing >> >> Which feels quite ugly. Any suggestions? Thanks. >> >> Jian >> >> _______________________________________________ >> Haskell-Cafe mailing list >> Haskell-Cafe@haskell.org >> http://www.haskell.org/mailman/listinfo/haskell-cafe >> >> _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe