I think this is because "Tree" is a data type and not a data constructor. According to your definition of Tree, Empty and Node are the constructors. Node a (Node b (Node c Empty Empty) (Node d Empty Empty)) (Node e (Node f Empty Empty) (Node g Empty Empty)) is a valid tree if a, b, c, d, e, f, g are integers. Hope this helps. -- Aditya. On 10 March 2012 15:58, bahadýr altan <doaltan@yahoo.co.uk> wrote:
Hello everyone. I'm trying to write a code which works on binary trees. When I write code like this with a tree with empty nodes :
data Tree = Empty | Node Integer Tree Tree
function Node a (Node b Empty Empty) (Node c Empty Empty)
it works fine. But when I try to create a more generic code like this which could work with trees who don't have empty nodes in grandchild level :
function Node a (Node b Tree Tree) (Node c Tree Tree )
I get this error : Undefined data constructor "Tree"
Can you help me with creating more generic code please? Thanks
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners