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 に答える