遞迴程式

在 Fortran 函式和子例程中,如果要直接或間接地再次呼叫自身,則需要顯式宣告為遞迴。因此,Fibonacci 系列的遞迴實現可能如下所示:

recursive function fibonacci(term) result(fibo)
  integer, intent(in) :: term
  integer::fibo

  if (term <= 1) then
    fibo = 1
  else
    fibo = fibonacci(term-1) + fibonacci(term-2)
  end if
  
end function fibonacci

另一個例子是允許計算階乘:

recursive function factorial(n)  result(f)
  integer::f
  integer, intent(in) :: n
  
  if(n == 0) then
    f = 1
  else
    f = n * f(n-1)
  end if
end function factorial

對於直接遞迴引用自身的函式,其定義必須使用 result 字尾。函式既不可能是 recursive 也不是 elemental