Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!princeton!caip!topaz!harvard!cmcl2!rna!cubsvax!peters From: peters@cubsvax.UUCP (Peter S. Shenkin) Newsgroups: net.lang.c Subject: Re: Precedent for use of = Message-ID: <488@cubsvax.UUCP> Date: Thu, 19-Jun-86 15:25:07 EDT Article-I.D.: cubsvax.488 Posted: Thu Jun 19 15:25:07 1986 Date-Received: Sat, 21-Jun-86 10:23:43 EDT References: Reply-To: peters@cubsvax.UUCP (Peter S. Shenkin) Organization: Columbia Univ. Bio. CG Fac., NY Lines: 33 In article kelem@aero2.arpa writes: >There is a 429 year precedent of using the symbol = for equality. > >The original rationale for using = for equality was given by Robert Recorde >in 1557. >The explanation was "... to auoide the tediouse repetition of these woordes: >is equalle to: I will sette as I doe often in woorke vse, >a paire of paralleles, or Gemowe lines of one lengthe, thus: >=, {a very long equals sign} bicause noe .2. thynges, can be moare equalle." .... >1. There are over four centuries of mathematics using = for equals. >Using = to mean assignment is begging for confusing code. >2. Assignment is a relatively new concept and a new notation is warrented. >":=" has enough precedent to serve this purpose. Assignment is also ancient in mathematics. It is usually invoked in formal writing by a phrase such as "Let z equal x/y". In informal writing, such as Recorde's "worke vse," it occurs as "z = x/y". What's recent is the need to distinguish between a statement of equivalence (C's "==") and the active process of giving a symbol a value (C's "="). Presumably this came about when mathematicians had to start talking to machines too stupid to be able to infer the distinction from context, instead of to other mathematicians. In any case, I think it's inaccurate to state that "=" traditionally means only one of those things; certainly the spelled-out version, "equal," is used for both meanings in formal mathematics. This all started with the observation that it's easy to say "if( a = b )" when one means "if( a == b )". Most of us probably do this now and then, but it's not really that big a deal, is it? (That is, it's one of the things we look for when debugging, right?) Peter S. Shenkin Columbia Univ. Biology Dept., NY, NY 10027 {philabs,rna}!cubsvax!peters cubsvax!peters@columbia.ARPA