Re: meta-comment on typing bear 18 Oct 2005 18:27 UTC
On Sun, 16 Oct 2005, Per Bothner wrote: >Your argument hinges on the term "addition", which you don't define, >so it's meaningless. Well, I thought most of us learned what addition was in kindergarten, got negative numbers somewhere in second or third grade, and then got complex numbers somewhere in junior high. Seriously, I mean plain, ordinary, linear addition, the same as anyone who uses the term unqualified outside of computer science. Addition, as per the generally accepted definition, is not a modular operation. It is transitive, commutative, and reversible. Modular addition is transitive and commutative, but it is not reversible; every modular addition loses information. > What it really boils down to: > * Is it wise/useful/desirable to overload operations so > that different (but in-some-way-related) operations are named > by the same operation name? I believe that it is not. > * Is it wise/useful/desirable overload the operation names for > standard arithmetic to objects that don't obey all the rules > of complex number arithmetic? I believe that it is not. > * A slightly different question: what is a number? Is a quantity > with a dimension a number? Is a 32-bit unsigned machine integer > a number? Is a complex a number? Both of the first two cases are examples of numbers plus additional information. A number with a dimension (such as "42 sunburned pigs") is a number plus additional information. A 32-bit machine word is a bit field which may be interpreted as a particular way of representing a member of a particular subset of numbers, but it is not itself a number. In this case the additional information is the width including leading zero bits, which is implied by the size of the representable subset, not by the number represented. A complex number is more debatable; I think I am willing to call it a number, but doing so often weirds math in the same way that verbing nouns weirds language. > I have no problem with you saying that you don't think my idea > is a good idea. (I'm not sure it is myself - probably not for R6RS.) > But I don't think you have basis for calling t "dead wrong". Well, I think that any operation that can take two positive arguments and produce a negative result is not addition. It fails to follow at least one of the basic properties of addition, reversibility. For example, if I know that I added something to 27 and got -32, reversibility means I should be able to uniquely determine what was added to 27; under the rules of linear addition, it would have to be -59, not any positive number. But with modular addition, it could be either of two numbers, -59 and ($MODULUS - 59), so modular addition isn't reversible like linear additon. There are several other properties of linear addition that fail for modular addition, too, but I won't go into them just now, because any one of them is actually enough for me to consider something to be a different operation. I think that calling a nonreversible operation "addition" without further qualifiers, is, in fact, dead wrong. Sorry, but I truly believe that's just a statement of the mathematical facts. And yes, there are similar objections to overloading multiplication, etc, with modular analogues. Bear