0

这是我的代码:

data Binary_Tree a = Null 
                      |Node {element :: a, left_tree, right_tree :: Binary_Tree a}
   deriving (Show, Eq)

--depth_of_tree 

dot :: Integral b => Binary_Tree a -> b
dot Null = 0
dot Node (a left right) = 1 + (dot Node (a left right)) + (dot Node (a left right))

但是,当我在 ghci 中加载它并输入

dot Node (2 (Node 3 Null Null) Null)

它出现了一个错误:

<interactive>:13:1:
    Not in scope: `dot'
    Perhaps you meant `not' (imported from Prelude)

有人喜欢告诉我我的代码有什么问题吗?

感谢任何可以给我一些建议的人XD

4

1 回答 1

1

1) 声明错误(您的代码包含无限递归)。尝试这个:

--depth_of_tree 
dot :: Integral b => Binary_Tree a -> b
dot Null = 0
dot (Node _ left right) = 1 + dot left + dot right

2)括号错误。尝试这个

  dot $ Node 2 (Node 3 Null Null) Null
于 2013-06-03T20:08:59.157 回答