再帰

直接または間接的に自身を参照することのできるプロシージャーを 再帰プロシージャーと呼びます。 このようなプロシージャーは、特定の条件を満たすまで、無限に そのプロシージャー自身を参照することができます。 たとえば、次のように正の整数 N の階乗を決定する ことができます。

INTEGER N, RESULT
READ (5,*) N
IF (N.GE.0) THEN
  RESULT = FACTORIAL(N)
END IF
CONTAINS
  RECURSIVE FUNCTION FACTORIAL (N) RESULT (RES)
    INTEGER RES
    IF (N.EQ.0) THEN
      RES = 1
    ELSE
      RES = N * FACTORIAL(N-1)
    END IF
  END FUNCTION FACTORIAL
END

構文および規則に関する 詳細については、FUNCTIONSUBROUTINE、 または ENTRYを参照してください。

+----------------------------------IBM 拡張----------------------------------+

また、コンパイラー・オプション -qrecur を指定することによって、 外部プロシージャーを再帰的に呼び出すことができます。ただし、XL Fortran は、 プロシージャーが RECURSIVE または RESULT のいずれかの キーワードを指定している場合に、このオプションを無視します。

+------------------------------End of IBM 拡張-------------------------------+

IBM Copyright 2003