我有以下内容:
data Alpha a = Beta a [Alpha a]
val = Beta 1 [Beta 2 [], Beta 5 [Beta 7 []]]
我正在尝试定义一个函数,该函数将移动 Alpha Int 类型的 val 并将其求和。我想要的方法是提取所有 Ints,然后对结果列表求和,但我正在努力提取所有 Ints,因为我不知道如何处理递归......
轻微的尝试:
checkAlpha :: Alpha Int -> [Int]
checkAlpha (Beta a []) = [a]
checkAlpha (Beta a b) = [a] ++ (map checkAlpha b)
显然这不太有效,但我看不到解决方案。