next up previous

2.5 Functional Programming

Because of the lack of recursion and data structures, Fortran 77 is clearly last in this category also. The other three languages all have these essential aspects for functional programming. Of the three, however, only Fortran 90 allows lazy evaluation; standard C (and hence C++) specifies a ``sequence point" between function argument evaluation and evaluation of the function itself, precluding lazy evaluation of function arguments. Thus Fortran 90 must be ranked first of the four in this category. Polymorphism is also important in functional programming, and C++ is superior to C in this regard.