在Haskell的玫瑰树 - 发现叶子

时间:2015-12-22 16:54:18

标签: haskell tree

请考虑以下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

分别计算玫瑰树中节点的数量 叶子(没有任何孩子的节点)。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

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

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

您将需要使用递归来填充空白和常见的高阶函数。

相关问题