请考虑以下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
分别计算玫瑰树中节点的数量 叶子(没有任何孩子的节点)。 有人可以帮忙吗?
答案 0 :(得分:3)
size (_ :> ts) = ? + sum ?
leaves (_ :> []) = ?
leaves (_ :> ts) = sum ?
您将需要使用递归来填充空白和常见的高阶函数。