Re: "Classical Fortran" Second Edition





n...@xxxxxxxxx wrote:
In article <VXlGl.12383$jZ1.2409@xxxxxxxxxxxxxxxxxxxx>,
Gary Scott <garylscott@xxxxxxxxxxxxx> wrote:
Luka Djigas wrote:

** over ^ has an advantage in that some of non-english keyboard
layouts don't have that symbol, so the users have to switch to EN then
back again.

yes ^ is a terrible choice because so many keyboards don't have that
symbol. On some, its a .not. symbol above the 6 key.

I remember one language (which I never actually coded in) that used
the proper character for that: vertical arrow :-) And, yes, the paper
tape punch had that character on it (a flexowriter?)



Regards,
Nick Maclaren.

My 5c.
1) whatever "The Committee" chooses among symbols to use in Fortran,
should be from the 7-bit ascii set to ensure that practically all
keyboards wil have them..

2) I don't think I'll use them myself, but I will accept that ">"
">=", "<", "<=" are reasonable alternative symbols for
".GT.",".GE.",".LT."and ".LE.",.

But I really hate the idea of "==" for ".EQ." when "=" should serve.
There can't be any parsing confusion.
The "==" seems to mean means 'equal or equal', a tautology.

3) And nothing looks reasonable to replace ".NOT." ,
I remember we used the (top left) corner symbol in IBM, which I
don't have on my keyboard, for ".NOT."
And don't some languages use "!" for this? Which of course won't mesh
with this being used for a comment in ortran. How about "~" instead
for ".NOT."? Or is it too easily misread as a minus sign?

Robin mentioned the arithmetic IF.
I agree it was always a bit clumsy in that a large proportion of tests
were two-way and not three-way, but so useful when you needed that
separate "what if zero?" special case, and ended up with two tests and
branches where there was only one before.
I DO use the logical IF tests myself, and never the arithmetic IF,
even if I write a tiny bit more code. But I insist that the computed
branch is a more readable structure that the huge CASE clauses, which
seems to have been invented just to remove labels.

.