[Haskell-cafe] search Data.Tree.Zipper
Jian Fan
abemud at gmail.com
Mon Mar 8 13:11:33 EST 2010
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
More information about the Haskell-Cafe
mailing list