二分木があるとしましょう。
main = putStrLn $ printTree tree
data Tree = Empty | Node Int (Tree) (Tree) deriving (Show)
tree = Node 4 (Node 3 Empty (Node 2 Empty Empty)) Empty
printTree :: Tree -> String
printTree x = case x of
Node num treeA treeB -> show num ++ "\n" ++ printTree treeA ++ "\n" ++ printTree treeB
Empty -> "Empty"
出力
*Main> main
4
3
Empty
2
Empty
Empty
Empty
必要な出力(タブまたはダブルスペースで区切るのは問題ありません)
*Main> main
4
3
Empty
2
Empty
Empty
Empty