我想知道是否有一个非人为的例子,其中相互递归是解决问题的最优雅的解决方案,它不能轻易地减少/内联为单个递归函数。
我已经知道这个例子(来自维基百科)
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 上查看了关于此主题的先前答案 -是否有任何相互递归的示例?但没有一个答案是我正在寻找的。
我知道它在递归解析中很有用——可能是实现它的唯一合乎逻辑的方式,但我需要一个更清晰、更具体的示例(最好是数学示例)。
谢谢你的帮助?
编辑:
由于显然每个相互递归函数的元组都可以简化为单个函数,所以我想知道是否存在使用相互递归函数是最好/最易读的方式的情况。