[Haskell-cafe] search Data.Tree.Zipper
Dan Weston
westondan at imageworks.com
Mon Mar 8 14:31:25 EST 2010
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 at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
More information about the Haskell-Cafe
mailing list