comp.lang.ada
 help / color / mirror / Atom feed
From: Vinzent Hoefler <nntp-2008-08@t-domaingrabbing.de>
Subject: Re: and then... (a curiosity)
Date: 3 Sep 2008 21:01:18 GMT
Date: 2008-09-03T21:01:18+00:00	[thread overview]
Message-ID: <6i8c8uFp5ufgU2@mid.individual.net> (raw)
In-Reply-To: wccljya6zmt.fsf@shell01.TheWorld.com

On Tue, 02 Sep 2008 16:50:34 -0400, Robert A Duff wrote:

> Ray Blaak <rAYblaaK@STRIPCAPStelus.net> writes:
> 
>> Martin Krischik <krischik@users.sourceforge.net> writes:
>>> When I was at Polytechnic first language was PL/1, second Pascal and
>>> therefore methodology was different. i.E. Don't rely on the execution
>>> order of boolean expressing.
>>
>> This I also agree with, although I admit being used to the short circuit &&
>> forms in the C-like languages.
>>
>> But my point is about having the source code be clearer when both
>> operands are required to be evaluated, especially when this is a
>> possibility:
> 
> It seems to me that two cases come up in practise, for "A and [then] B".
> Either I don't care which gets evaluated first, and don't care whether
> or not both get evaluated, because there are no important side effects
> (that's "A and B"), or I care about order (that's "A and then B").
> 
> I never see cases where it is important that A and B both be evaluated.
> 
> Counterexamples, please?  ;-)  Realistic ones, I mean.

Hmm. Digging in *really* old (Turbo-Pascal) sourcecode, I found an old map
editor:

Example #1:

-- 8< --
    {$IFOPT B+} {$DEFINE OPTB} {$B-} {$ENDIF}
    for i := 0 to TESTFUNCS - 1 do
      b := b and MapTest[i](Contents);
    {$IFDEF OPTB} {$UNDEF OPTB} {$B+} {$ENDIF}
-- 8< --

MapTest is a list of procedures I wanted to execute to check the validity
of an edited map prior to exporting it.

#2:

-- 8< --
      {$IFOPT B-} {$DEFINE OPTB} {$B+} {$ENDIF}
      repeat
        P := Message (Desktop, evBroadCast, cmClose, @C);
      until ((P = NIL) or (C = cmCancel));
      {$IFDEF OPTB} {$UNDEF OPTB} {$B-} {$ENDIF}
-- 8< --

Not quite sure, why I did it here. Seems, more than 10 years ago, I lacked
commenting properly. ;)

Finally #3 (and one of those MapTest functions mentioned above, so one can
see why I did it):

-- 8< --
{$A+,B-,D+,E-,F+,G+,I+,L+,N-,O+,R-,S-,V+,X-}
{    ^^ important!!!}

[...]

function AtLeastOneActor;
var
  b : boolean;
  i,
  j : byte;

begin
  b := False;

  for i := 1 to 62 do
  for j := 1 to 62 do
    b := b or (X.mpObj_Data[i][j].odActors <> 0);

  AtLeastOneActor := b or SaveMsgBox (NOACTOR);
end; {AtLeastOneActor}
-- 8< --

(Uh, bad code, literal constants...)

So, maybe I would generally write it different today, but for an example,
it is as real as it gets.


Vinzent.



  parent reply	other threads:[~2008-09-03 21:01 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-29 21:06 and then... (a curiosity) mockturtle
2008-08-29 21:47 ` Samuel Tardieu
2008-08-30 21:28   ` Maciej Sobczak
2008-08-31  8:28     ` Georg Bauhaus
2008-08-31 23:21       ` Ray Blaak
2008-09-01  8:05     ` Martin Krischik
2008-09-01 17:56       ` Ray Blaak
2008-09-02  6:53         ` Martin Krischik
2008-09-02 14:56           ` Adam Beneschan
2008-09-02 16:28             ` Ray Blaak
2008-09-02 16:26           ` Ray Blaak
2008-09-02 20:50             ` Robert A Duff
2008-09-03 12:35               ` Brian Drummond
2008-09-03 15:56                 ` Robert A Duff
2008-09-04 22:09                   ` Brian Drummond
2008-09-03 21:01               ` Vinzent Hoefler [this message]
2008-09-02 14:50     ` Adam Beneschan
2008-08-29 22:28 ` Adam Beneschan
2008-08-30  1:06   ` Jeffrey R. Carter
2008-08-30 11:21   ` Dmitry A. Kazakov
2008-08-30 15:35     ` Peter C. Chapin
2008-09-02 15:06       ` Adam Beneschan
2008-09-02  3:41 ` Steve
2008-09-02  7:48   ` stefan-lucks
2008-09-02  8:57     ` Martin Krischik
2008-09-02 10:50       ` stefan-lucks
2008-09-02 10:33         ` Ludovic Brenta
2008-09-02 13:32           ` stefan-lucks
2008-09-02 12:53             ` Ludovic Brenta
2008-09-02 17:32               ` Georg Bauhaus
2008-09-03 13:14               ` stefan-lucks
2008-09-03 12:44                 ` Dmitry A. Kazakov
2008-09-02 13:39             ` stefan-lucks
2008-09-02 13:40             ` stefan-lucks
2008-09-02 16:48             ` Dmitry A. Kazakov
2008-09-02 17:00             ` Keith Thompson
2008-09-02 19:15               ` Simon Wright
2008-09-02 20:37               ` Robert A Duff
2008-09-02 20:58                 ` Jeffrey R. Carter
2008-09-02 21:08                   ` Robert A Duff
2008-09-03 12:24                     ` Pascal Obry
2008-09-02 22:34                   ` Santiago Urueña
2008-09-03  5:56                     ` Robert A Duff
2008-09-03  6:55                       ` Santiago Urueña
2008-09-03 14:14                       ` Adam Beneschan
2008-09-03  0:11                 ` Randy Brukardt
2008-09-02 17:20             ` Georg Bauhaus
2008-09-04  1:05         ` Stephen Leake
2008-09-04  6:45           ` stefan-lucks
2008-09-04  7:35             ` Dmitry A. Kazakov
2008-09-04 12:04               ` stefan-lucks
2008-09-04 13:00                 ` Dmitry A. Kazakov
2008-09-04 19:05                   ` stefan-lucks
2008-09-04 20:28                     ` Dmitry A. Kazakov
2008-09-05  6:57                       ` stefan-lucks
2008-09-05  6:34                         ` Ray Blaak
2008-09-05 14:14                     ` Robert A Duff
2008-09-05 15:04                       ` Dmitry A. Kazakov
2008-09-07 16:45                         ` stefan-lucks
2008-09-05 15:14                       ` Hyman Rosen
2008-09-05 15:59                         ` Adam Beneschan
2008-09-05 16:10                           ` Hyman Rosen
2008-09-07 16:36                       ` stefan-lucks
2008-09-07 16:08                         ` Gautier
2008-09-04  7:39             ` Karel Th�nissen
2008-09-04 12:12               ` stefan-lucks
2008-09-04 15:13                 ` Georg Bauhaus
2008-09-04 15:16                 ` Karel Th�nissen
2008-09-04 15:42                   ` Dmitry A. Kazakov
2008-09-04 19:27                   ` stefan-lucks
2008-09-04 19:43                     ` stefan-lucks
2008-09-04 19:40                       ` Georg Bauhaus
2008-09-05  7:00                         ` stefan-lucks
2008-09-05  6:35                           ` Ray Blaak
2008-09-04 20:06                       ` Karel Th�nissen
2008-09-05  7:44                         ` stefan-lucks
2008-09-05  6:41                           ` Vinzent Hoefler
2008-09-04 20:09                     ` Karel Th�nissen
2008-09-05  7:25                       ` stefan-lucks
2008-09-05  6:37                         ` Ray Blaak
2008-09-05  8:20                           ` stefan-lucks
2008-09-05 13:57                         ` Robert A Duff
2008-09-04 16:33                 ` Dmitry A. Kazakov
2008-09-04 19:31                   ` stefan-lucks
2008-09-04 19:59                     ` Karel Th�nissen
2008-09-05  7:27                       ` stefan-lucks
2008-09-05  8:38                         ` Ludovic Brenta
2008-09-04 20:17                     ` Dmitry A. Kazakov
2008-09-05 13:26                 ` Robert A Duff
2008-09-05 13:49                   ` Robert A Duff
2008-09-03  1:24     ` Stephen Leake
2008-09-03  3:31       ` tmoran
2008-09-03 13:22       ` stefan-lucks
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox