comp.lang.ada
 help / color / mirror / Atom feed
From: kilgallen@eisner.decus.org (Larry Kilgallen)
Subject: Re: loop step function
Date: 1997/01/25
Date: 1997-01-25T00:00:00+00:00	[thread overview]
Message-ID: <1997Jan24.192209.1@eisner> (raw)
In-Reply-To: 32E93C0B.36A@cloud9.net


In article <32E93C0B.36A@cloud9.net>, Paul Van Bellinghen <pvanbell@cloud9.net> writes:
> I'm fairly new to ADA. I have coded in PASCAL, FORTRAN, C, and assembly
> and have found ADA to be similar to PASCAL but with stronger type
> checking and with better organization and data hiding. Anyway, there
> seems to be an obvious omission in the ADA language. The FOR loop does
> not have a "STEP" option. In order to perform a loop function using a
> variable's range of values but in steps greater than the variable
> kernel, you seem to have to use a WHILE loop with the variable
> incremented within the loop by the step size. Is there a more elegant
> way of doing this?

In order to shed the newcomer image, you have to capitalize it as Ada
with this crowd.  Pretty silly for a language which is case-insensitive,
but everything else is much more logical.

As regards FOR loops, you could say:

	for BY_ONE from 1 to 20 loop
		declare
			USEFUL_VALUE : INTEGER := BY_ONE*2;
		begin
			my_procedure ( USEFUL_VALUE );
		end;
	end loop;

Whether that is "elegant" is certainly debatable, but it is "flexible"
in that:

	USEFUL_VALUE : INTEGER := BY_ONE*2;

could be replaced with:

	USEFUL_VALUE : INTEGER := (BY_ONE**2)/13;

Larry Kilgallen
The above statements represent my "gut feel" and have not been
authorized by any compiler.




  parent reply	other threads:[~1997-01-25  0:00 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-01-24  0:00 loop step function Paul Van Bellinghen
1997-01-25  0:00 ` Geert Bosch
1997-01-25  0:00 ` Matthew Heaney
1997-01-27  0:00   ` johnherro
1997-01-27  0:00     ` Michael Feldman
1997-01-25  0:00 ` Larry Kilgallen [this message]
1997-01-29  0:00   ` Ted Dennison
1997-01-30  0:00     ` Robert Dewar
replies disabled

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