summaryrefslogtreecommitdiff
path: root/54a-60/56.hs
diff options
context:
space:
mode:
Diffstat (limited to '54a-60/56.hs')
-rw-r--r--54a-60/56.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/54a-60/56.hs b/54a-60/56.hs
new file mode 100644
index 0000000..7bdc5dd
--- /dev/null
+++ b/54a-60/56.hs
@@ -0,0 +1,11 @@
+data Tree a = Empty | Branch a (Tree a) (Tree a) deriving (Show, Eq)
+
+symmetric :: (Eq a) => Tree a -> Bool
+mirror :: (Eq a) => Tree a -> Tree a -> Bool
+
+mirror Empty Empty = True
+mirror (Branch _ a b) (Branch _ l r) = mirror a r && mirror b l
+mirror _ _ = False
+
+symmetric Empty = True
+symmetric (Branch _ l r) = mirror l r