From: Stephen Leake <stephe_on_the_web@toadmail.com>
Subject: Re: Records that could be arrays
Date: Thu, 23 Feb 2006 08:06:18 -0500
Date: 2006-02-23T08:06:18-05:00 [thread overview]
Message-ID: <u8xs2xm0l.fsf@toadmail.com> (raw)
In-Reply-To: WBaLf.18619$HU.13588@trnddc04
Justin Gombos <rpbkbq.xax.gld@uluv.kbq> writes:
> I noticed this example code in 5.4.4 of the Ada Quality and Style
> Guide:
>
> type Coordinate is
> record
> Row : Local_Float;
> Column : Local_Float;
> end record;
>
> type Window is
> record
> Top_Left : Coordinate;
> Bottom_Right : Coordinate;
> end record;
>
> Would anyone here write something like that?
Yes; Windex has it. Although if I was rewriting it from scratch now,
I might use an array.
> They are trying to illustrate that records should not always be flat,
> which is a fine example for that purpose, but this seems to set a poor
> example. Does anyone see a reason to use a record when an array can
> be used? My version of the same structure would look more like:
>
> type Axis is (Row, Column);
> type Window_Vertex is (Top_Left, Bottom_Right);
>
> type Coordinate is array (Axis) of Local_Float;
> type Window is array (Window_Vertex) of Coordinate;
>
> I have set a rule for myself: Composite types composed solely of one
> type of element should be declared as arrays rather than records.
> I've never seen this rule in a coding standard. The idea is that you
> can be more expressive with an array. Example- there are more options
> when it comes to an arrays role in control structures. Plus the
> "others =>" notation is available. Thoughts?
I usually lean towards arrays, partly for the reasons you give, partly
because I have library utilities that work much more nicely with
arrays than records; Text_IO and containers for example. I can
create a Text_IO procedure Put for an array with a simple
instantiation; for a record, I have to use auto_text_io.
But records are deeply embedded in my psyche; these types just feel
more natural as records than arrays. I guess we need to catch the kids
in high school, and teach them to use arrays instead of records.
--
-- Stephe
next prev parent reply other threads:[~2006-02-23 13:06 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-23 4:11 Records that could be arrays Justin Gombos
2006-02-23 4:51 ` tmoran
2006-02-23 13:19 ` Justin Gombos
2006-02-24 10:19 ` Stephen Leake
2006-02-23 6:32 ` Wilhelm Spickermann
2006-02-23 13:08 ` Stephen Leake
2006-02-23 13:20 ` Justin Gombos
2006-02-23 14:29 ` Wilhelm Spickermann
2006-02-24 10:31 ` Stephen Leake
2006-02-26 22:34 ` Wilhelm Spickermann
2006-02-23 8:21 ` john Doef
2006-02-23 9:22 ` Jean-Pierre Rosen
2006-02-23 13:11 ` Stephen Leake
2006-02-23 13:37 ` Justin Gombos
2006-02-23 13:06 ` Stephen Leake [this message]
2006-02-23 20:23 ` Simon Wright
2006-02-24 21:23 ` Randy Brukardt
2006-02-25 11:39 ` Dmitry A. Kazakov
2006-02-26 3:24 ` Steve Whalen
2006-02-26 9:51 ` Dmitry A. Kazakov
2006-02-27 2:26 ` Steve Whalen
2006-02-27 9:33 ` Dmitry A. Kazakov
2006-03-01 22:44 ` Robert A Duff
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox