相互再帰が問題の最も洗練された解決策であり、単一の再帰関数に簡単に縮小/インライン化できない、非人工的な例があるかどうかを知りたいです。
私はすでにこの例を知っています(ウィキペディアから)
function even?(number : Integer)
if number == 0 then
return true
else
return odd?(abs(number)-1)
function odd?(number : Integer)
if number == 0 then
return false
else
return even?(abs(number)-1)
しかし、真剣に、彼らの正しい心の誰もこの方法で数のパリティをチェックすることはありません。
このトピックに関する以前の回答をSOで確認しました-相互再帰の例はありますか?しかし、答えはどれも私が探しているものではありません。
私はそれが再帰的な構文解析に役立つことを知っています-おそらくそれを実装する唯一の論理的な方法ですが、よりクリーンでより具体的な例(できれば数学的な例)が必要です。
助けてくれてありがとう?
編集:
どうやら相互再帰関数のすべてのタプルを単一の関数に減らすことができるので、相互再帰関数の使用が最良/最も読みやすい方法である場合があるかどうかを知りたいと思います。