簡體   English   中英

哈斯克爾。 如何在GHCi中測試BTree?

[英]Haskell. How can I test a BTree in GHCi?

我從二叉樹有這個代碼定義

data BTree a = Empty | Node a (BTree a) (BTree a)
deriving (Eq, Show, Read)

並定義功能大小

size' :: BTree a -> Integer
size' Empty = 0
size' (Node _ l r) = size' l + size' r + 1

據我了解,我有一棵空樹或一棵有一個節點和兩個孩子的樹。 這是正確的嗎?

Node a (BTree a) (BTree a) 

根據這個定義,我可以只有一個節點嗎?

我正在測試這個

size' (BTree 2 (Node 3 empty) (Node 6 empty)) 
size' (BTree 5 (Node 3 empty) (Node 8 empty) empty)
size' (BTree 'A' (Node 'B' empty) (Node 'C' empty))
size' (Node 5 (BTree 3 empty) (BTree 8 empty) empty)
size' (Node 5 (BTree 3 empty) (BTree 8 empty))

但是所有這些都會導致錯誤

您的定義說,有兩種方法可以使BTree a

  1. Empty
  2. 作為Node xyz ,其中x類型為a ,而yz類型為BTree a

因此, BTree Int一些示例為:

  1. Empty
  2. Node 0 Empty Empty
  3. Node 1 (Node 2 Empty Empty) Empty

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM