2015-12-22 61 views
-2

請的功能實現起來考慮玫瑰樹的定義如下哈斯克爾玫瑰樹在Haskell - 尋找葉

data Rose a = a :> [Rose a] 
     deriving (Eq, Show) 

root (a :> rs) = a 

children (a :> rs) = rs 

獲取根和玫瑰樹的孩子。 那裏我還在掙扎,該位將如何實現計數玫瑰樹的節點數目的功能

size :: Rose a -> Int 
leaves :: Rose a -> Int 

,分別是(沒有任何孩子節點)葉片數 。 任何人都可以幫忙嗎?

回答

3
size (_ :> ts) = ? + sum ? 

leaves (_ :> []) = ? 
leaves (_ :> ts) = sum ? 

您將需要使用遞歸來填充空白和常見的高階函數。