🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #981

Re: do...while vs. repeat...until (was: Errors aren't that simple)

#981
From: Michael Meissner
Date: Sat, 24 Mar 1990 13:44
33 lines
2081 bytes
In article <4879@ganymede.inmos.co.uk> mph@lion.inmos.co.uk (Mike
Harrison) writes:

| >To take a concrete example, let's ignore the existence of <ctype.h> and
| >suppose that we want to test whether or not a given character is a lowercase
| >letter.  I claim that, to me, the condition "(c >= 'a' && c <= 'z')" is a
| >simpler expression than "(c < 'a' || c > 'z')".  I immediately recognize the
| >idiom in the former, but the latter causes a perceptible delay as I mentally
| >translate the condition.  (If you disagree with this example, invent another
| >one--unless you want to claim that there is *no* condition that is simpler
| >than its inverse.)

Three things:

    1)	On EBCDIC systems, either of the above tests would evaluate
	true for some things that are not lower case alphabetic, since
	there are some characters (10?) between 'i' & 'j';

    2)	Obviously the above test will not work for character sets that
	have more than 26 alphabetic characters;

    3)	If you are worried about micro optimization, and your compiler
	doesn't recognize the optimization, you generally get faster
	code if you rewrite the test as:

		if (((unsigned) c - 'a') <= ((unsigned) 'z' - 'a'))

	This is because only one branch is done.
--
Michael Meissner	email: meissner@osf.org		phone: 617-621-8861
Open Software Foundation, 11 Cambridge Center, Cambridge, MA

Catproof is an oxymoron, Childproof is nearly so
Technical Details
Message-ID: <MEISSNER.90Mar24084404@curley.osf.org>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!samsung!think!paperboy!meissner
References: <16188@haddock.ima.isc.com> <9130009@hpavla.AVO.HP.COM> <OVB2S3Bxds13@ficc.uu.net> <16249@haddock.ima.isc.com> <4879@ganymede.inmos.co.uk>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!samsung!think!paperboy!meissner
From: meissner@osf.org (Michael Meissner)
Newsgroups: comp.lang.misc
Subject: Re: do...while vs. repeat...until (was: Errors aren't that simple)
Message-ID: <MEISSNER.90Mar24084404@curley.osf.org>
Date: 24 Mar 90 13:44:04 GMT
References: <16188@haddock.ima.isc.com> <9130009@hpavla.AVO.HP.COM>
 <OVB2S3Bxds13@ficc.uu.net> <16249@haddock.ima.isc.com>
 <4879@ganymede.inmos.co.uk>
Sender: news@OSF.ORG
Organization: Open Software Foundation
Lines: 33
In-reply-to: mph@lion.inmos.co.uk's message of 23 Mar 90 12:51:41 GMT