什么是"双递归"一词?

Dan*_*Tao 13 language-agnostic recursion terminology

这是一个明显的递归函数:

function()
{
    function();
}
Run Code Online (Sandbox Code Playgroud)

我们简单地称之为"递归" - 但这个(几乎没有)更复杂的版本呢?

functionLeft()
{
    functionRight();
}

functionRight()
{
    functionLeft();
}
Run Code Online (Sandbox Code Playgroud)

这个场景有一个术语,例如"双递归"吗?或者没有具体的术语来区分这种情况和上面的单功能案例?

Jon*_*rdy 27

它被称为相互递归.


Bla*_*cal 16

正如Jon Purdy所说,你给出的例子叫做"相互递归".术语"双递归"也存在,但具有不同的含义:当函数使用两个递归调用时.典型的例子是Fibonacci函数"

int Fib(int n)
{
  if (n < 2) return 1;
  return Fib(n-1) + Fib(n-2);
}
Run Code Online (Sandbox Code Playgroud)

Fib(n)函数以递归方式调用自身两次.