在函数内调用辅助函数 - Haskell
Calling Helper functions within functions - Haskell
我有3个函数,第一个是
toList :: Tree -> [Integer]
第二个是
sumTree :: Tree -> Maybe Integer
对树中的元素求和,过滤一些边缘情况。我的主要功能是
treeSum :: Tree -> Maybe Integer
我想在 Tree 的输入上调用 toList,然后在上一个调用的输出上调用 sumTree。我不知道如何优雅地将它组合在一起。我所做的是
treeSum = sumTree (toList x)
但我发现 x
不在范围内。
Haskell 通过说 Not in scope
告诉你的是 x
没有在别处定义。
你应该这样写:
treeSum x = sumTree (toList x)
您将面临的问题是类型错误。 toList
需要一个 Tree
和 returns 一个 Integer
的 List
但 sumTree
正在等待 Tree
,而不是列表Integer
.
老实说,你想做什么不是很清楚。
注意:您应该避免在您的代码中同时定义 sumTree
和 treeSum
,因为您会失去自己以及所有尝试阅读您的代码的人。
我有3个函数,第一个是
toList :: Tree -> [Integer]
第二个是
sumTree :: Tree -> Maybe Integer
对树中的元素求和,过滤一些边缘情况。我的主要功能是
treeSum :: Tree -> Maybe Integer
我想在 Tree 的输入上调用 toList,然后在上一个调用的输出上调用 sumTree。我不知道如何优雅地将它组合在一起。我所做的是
treeSum = sumTree (toList x)
但我发现 x
不在范围内。
Haskell 通过说 Not in scope
告诉你的是 x
没有在别处定义。
你应该这样写:
treeSum x = sumTree (toList x)
您将面临的问题是类型错误。 toList
需要一个 Tree
和 returns 一个 Integer
的 List
但 sumTree
正在等待 Tree
,而不是列表Integer
.
老实说,你想做什么不是很清楚。
注意:您应该避免在您的代码中同时定义 sumTree
和 treeSum
,因为您会失去自己以及所有尝试阅读您的代码的人。