【发布时间】:2017-12-13 20:10:03
【问题描述】:
我有这个简单的数据树:
data Tree = Leaf Int | Node [Tree]
我必须为这种类型开发一个折叠功能:
foldTree :: (Int -> a) -> ([a] -> a) -> Tree -> a
例如:
foldTree (+1) sum (Node[ (Leaf 2), (Leaf 3)])
将返回 (2+1)+(3+1) = 7 对于叶子,我有:
foldTree f g (Leaf n) = (f n)
但我对开发节点的案例没有任何想法。
我是法国人,也为错误感到抱歉。
【问题讨论】:
-
提示:如何从
Trees 列表中获取as 列表?