【发布时间】:2017-12-17 17:11:02
【问题描述】:
给定一棵树:
data Tree a = Empty | Node a [Tree a] deriving Show
我正在尝试获取最大元素,所以我尝试了:
maxElem:: (Ord a) => Tree a -> Int
maxElem Empty = error "maxElem on empty Tree"
maxElem (Node a []) = a
maxElem (Node a x ) = maximum [ maxElem h | h<-x]
但是我得到一个错误,我没有找到它。
【问题讨论】:
-
请注意,从实际的角度来看,您不必自己定义
maxElem;使用DeriveFoldable扩展,你可以简单地写data Tree a = ... deriving (Show, Foldable),然后像maximum (Node 5 [])这样的东西会正确返回5。
标签: haskell data-structures tree