遞迴程式
在 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
。