Redefining a numeric constant in Fortran (Was Re: why are some types immutable?)
Date: 16 Jan 2005 18:14:44 -0800
Roy Smith wrote (in comp.lang.python):
>Believe it or not, in some early versions of Fortran, numbers were not
>immutable! I forget the exact scenario, but if you did something like:
> subroutine munge (i)
> i = 3
>and then in your main program did:
> j = 7
> call munge (7)
> write (6, 11) j
> 11 format ('j = ', i6)
>it would print 3! The problem is that numerical constants were
>(i.e. in the main program, there was only a single 7 stored in memory,
>and both uses of 7 referred to the same memory location), and the
>passed to the subroutine was call by reference. It was almost as if
>compiler let you say "7 = 3" as an assignment statement.
>Needless to say, people did indeed complain massively.
Was this (the ability to redefine the value of '7') ever really true of
Fortran, or a particular Fortran compilers?