-------------------------------------------------------------------------------- -- datatype for a tree with an integer at each leaf data Tree = Node Tree Tree | Leaf Int -- example of a tree t :: Tree t = Node (Leaf 1) (Node (Node (Leaf 2) (Leaf 3)) (Leaf 3)) -------------------------------------------------------------------------------- -- perform a depth-first search on a tree for a given integer search :: Int -> [Tree] -> Bool search n [] = False search n ((Leaf l):ts) | n == l = True | otherwise = search n ts search n ((Node t1 t2):ts) = search n (t1:t2:ts) --------------------------------------------------------------------------------