> > wow incrementing with ++ is not orthogonal to +1!
My wording was bad, I meant that the break of symmetry of '++' and '+1' "lowers the orthogonality" of the language.
This comment from a Java board reflects my understanding of orthogonal:
Orthogonality is a boolean property. You have it or you don't. It is not a number or count. ...
What Wirth specifically meant was that Pascal control statements and declarations are independent of each other. This is the reason why Pascal compilers can be so small. See here.
The concept in programming languages comes from Van Wijngaarden's paper Orthogonal design and description of a formal language prepared for the Algol-68 group, in which he expressed the desire to 'see the definition of a (programming) language as the Cartesian product of its concepts'.
And if features of the concept of addition are not parallel, the product of the features becomes "less" Cartesian, i.e. one gets "more exceptions from the rule".
That's my personal definition of "lowering orthogonality".
UPDATE: to be more explicit:
:~$ perl -wde0
...
DB<1> my %a; $a{1}=$a{1}+1;print $a{1}
Use of uninitialized value $a{"1"} in addition (+) at (eval 5)[/usr/sh
+are/perl/5.10/perl5db.pl:638] line 2.
...
1
DB<2> my %a; $a{1}++;print $a{1}
1
in perl lingo you might say ++ has special magic! |