私は助けが必要です。私はその形の機能を持っています
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))