【发布时间】:2021-04-27 16:58:32
【问题描述】:
我对 Haskell 很陌生,因此对它不是很熟悉。
下面的方法是测量一个MultTree的大小。
MultTree 包括 Index 节点,其中包含两个 Int 并且可以有任意数量的子节点。然后还有Data 节点包含一个Int 并且不能有子节点。那么方法应该确定的是,最长的“分支”有多长。
到目前为止我的方法:
data MultTree a = Index a a [MultTree a] | Data a deriving Show
size :: MultTree a -> Int
size (Index a b []) = 1
size (Index a b [Index c d [e]]) = size (Index c d [e]) + 1
它确实可以编译,但是当我尝试使用它时,我得到了"non-exhaustive patterns in function size"。即使我不会收到那个错误,我也知道它不会按照我想要的方式工作。
但不知何故,我无法想出解决问题的办法。
我将不胜感激。
提前谢谢你!
【问题讨论】:
标签: haskell recursion tree algebraic-data-types non-exhaustive-patterns