From: Ted Harding <Ted.Harding_at_nessie.mcc.ac.uk>

Date: Sun 19 Feb 2006 - 01:39:52 EST

*>
*

> This is a minor stylistic suggestion: when translating the mathematical

*> expression (a < b < c), write it as (a < b) & (b < c). It has no
*

*> effect
*

*> on the outcome, but keeping the inequalities in the same direction
*

*> makes
*

*> the meaning more obvious.
*

*>
*

*> If you do this, your expression becomes
*

*>
*

*> (Y<1 & 1<X) | (X<1 & 1<Y)
*

*>
*

*> and it's clear at a glance what's going on.
*

*>
*

*> I think I originally read this suggestion in something written by
*

*> Kernighan and/or Plauger, I can't claim credit for it.
*

*>
*

*> Duncan Murdoch
*

E-Mail: (Ted Harding) <Ted.Harding@nessie.mcc.ac.uk> Fax-to-email: +44 (0)870 094 0861

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sun Feb 19 01:44:31 2006

Date: Sun 19 Feb 2006 - 01:39:52 EST

On 18-Feb-06 Duncan Murdoch wrote:

> On 2/18/2006 1:13 AM, Robert W. Baer, Ph.D. wrote:

>> Try: >> (X>1 & Y<1) | (X<1 & Y>1)

> This is a minor stylistic suggestion: when translating the mathematical

Mention of "Kernighan and/or Plauger" got me digging out K & P "The Elements of Programming Style" (from 1974/78). The suggestion is indeed in there, on pp 20-21, leading up to the rule "Use the 'telephone test' for readability" ("If someone could understand your code when read aloud over the telephone, it's clear enough. If not, then it needs rewriting.")

The example is:

Consider the sequence

** 6 IF(X1.GE.ARRAY(I)) GO TO 2
**

** IF(ARRAY(I).LT.X2) ICOUNT=ICOUNT+1
**
2 ...

It takes a while to realize that IVOUNT is incremented only if ARRAY(I) lies between X1 and X2. .... Rewriting gives:

** 6 IF(ARRAY(I).GT.X1 .AND. ARRAY(I).LT.X2) ICOUNT = ICOUNT + 1
**
(Though I think it could be improved still further by the slight
change to "X1.LT.ARRAY(I)" to bring it into line with Duncan's
example).

Best wishes,

Ted.

E-Mail: (Ted Harding) <Ted.Harding@nessie.mcc.ac.uk> Fax-to-email: +44 (0)870 094 0861

Date: 18-Feb-06 Time: 14:39:50 ------------------------------ XFMail ------------------------------ ______________________________________________R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sun Feb 19 01:44:31 2006

*
This archive was generated by hypermail 2.1.8
: Mon 20 Feb 2006 - 14:08:46 EST
*