Skip to content

Instantly share code, notes, and snippets.

@renato-zannon
Created October 25, 2011 03:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save renato-zannon/1311185 to your computer and use it in GitHub Desktop.
Save renato-zannon/1311185 to your computer and use it in GitHub Desktop.
import Control.Monad
data Tree a = EmptyTree | Node a (Tree a) (Tree a)
(<<) EmptyTree value = Node value EmptyTree EmptyTree
(<<) (Node value left right) newValue = if newValue < value
then Node value (left << newValue) right
else Node value left (right << newValue)
toArray EmptyTree = []
toArray (Node value left right) = toArray left ++ value : toArray right
printTree :: (Show t) => Tree t -> IO ()
printTree tree = mapM_ print (toArray tree)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment