我有3个功能,第一个是
toList :: Tree -> [Integer]
第二个是
sumTree :: Tree -> Maybe Integer
它对树中的元素求和,对某些边缘情况进行过滤。我的主要功能是
treeSum :: Tree -> Maybe Integer
我想在Tree的输入上调用toList,然后在前一次调用的输出上调用sumTree。我不知道如何优雅地将它结合在一起。我做的是
treeSum = sumTree (toList x)
但我的x
不在范围内。
答案 0 :(得分:1)
Haskell通过说Not in scope
告诉你的是x
在其他任何地方都没有定义。
你应该写一些类似的东西:
treeSum x = sumTree (toList x)
您将面临的问题是类型错误。 toList
需要Tree
并返回List
Integer
但sumTree
正在等待Tree
,而不是Integer
列表}。
说实话,你要做的事情并不是很清楚。
注意:您应该避免在代码中定义sumTree
和treeSum
,因为您会松开自己以及每个尝试阅读代码的人。