我需要帮助。我有那种形式的功能
myFunction = case myFunction of
(Nothing) -> (Just)
(Just) -> (Just)
我想让它尾递归。一个人会怎么做?我知道根据递归调用的返回我们有不同的语句这一事实使它变得困难(我需要帮助的原因^^)。我可以提供原始功能,但我宁愿寻找更通用的解决方案。提前致谢
编辑:实际代码:
myFunction :: MyTree x -> (x, Maybe(MyTree x))
myFunction = (x, Nothing)
myFunction (MyNode left right) = case myFunction left of
(x, Nothing) -> (x, Just right)
(x, Just left2) -> (x, Just (Node left2 right))