FORTRANの勉強
ちょっとだけやってみた。でもすぐ飽きた。
FORTRAN77を使ってみたものの、超使えない。何アレ。再帰呼び出し出来ないじゃん。と思ったら、間にラッパ関数をかませれば可能と言うクソ仕様。
具体的に言うと、
FUNCTION IFIB(I1) INTEGER TMP1, TMP2, IFIB IF (I1 .LE. 1) THEN IFIB = 1 ELSE TMP1 = IFIB(I1 - 1) TMP2 = IFIB(I1 - 2) IFIB = TMP1 + TMP2 ENDIF RETURN END
はコンパイル通らないんだけれども、
FUNCTION IFIB(I1) INTEGER TMP1, TMP2, IFIB IF (I1 .LE. 1) THEN IFIB = 1 ELSE TMP1 = IFIB2(I1 - 1) TMP2 = IFIB2(I1 - 2) IFIB = TMP1 + TMP2 ENDIF RETURN END INTEGER FUNCTION IFIB2(I3) IFIB2 = IFIB(I3) RETURN END
はきちんと動く。使えない・・・めちゃくちゃ使えない・・・
言語として欠陥があるとしか思えないのですが。なお、FORTRAN90では使えるそうですが。いや、そんなの当たり前だし。