From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Generic Zero Length Array
Date: Sat, 23 Feb 2008 09:27:26 -0500
Date: 2008-02-23T09:27:26-05:00 [thread overview]
Message-ID: <wccablrpx2p.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 7cd05c2a-d67a-4623-a9dc-67e357877f48@e6g2000prf.googlegroups.com
Adam Beneschan <adam@irvine.com> writes:
> Way back before Ada 95, someone made a proposed language array to add
> a "null array" aggregate to the language, so that you could write an
> aggregate to represent a zero-element array without needing a fake
> value for the elements. I thought this was a great idea and could
> never understand why it wasn't adopted. It would have solved the
> problem here. But the <> syntax of Ada 2005 obviates the need for
> something like that.
I still think it's a language design flaw that you can't write a
zero-element or one-element positional aggregate.
>...I don't think we need "null record" (i.e. in
> aggregates) any more either, although certainly nobody is going to
> suggest removing it.
Why don't we need that?
> [Actually, there's one case where you still can't specify a null array
> aggregate, and that's where the index type is either "mod 1" or an
> enumeration type with one value:
>
> type Enum is (This_One);
> type Arr is array (Enum range <>) of Anything;
>
> Now go ahead and try to specify a zero-element array aggregate of type
> Arr. You can't.
Right. Not just aggregates -- you can't create any zero-element array
of type Arr.
>...But this is a pretty pathological case so it's not
> worth trying to change the language for it.]
If it were worth it, what would be the best change?
I suppose ranges could be characterized by 'First/'Length,
instead of 'First/'Last. And eliminate 'Last from the language.
Or else say 'Last raises Constraint_Error if 'First = 'Base'First
and 'Length = 0.
- Bob
next prev parent reply other threads:[~2008-02-23 14:27 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-22 13:31 Generic Zero Length Array shaunpatterson
2008-02-22 13:53 ` Egil Høvik
2008-02-22 13:55 ` shaunpatterson
2008-02-22 14:11 ` Georg Bauhaus
2008-02-22 19:25 ` Randy Brukardt
2008-02-22 19:25 ` Randy Brukardt
2008-02-22 19:25 ` Randy Brukardt
2008-02-22 23:01 ` Adam Beneschan
2008-02-23 9:30 ` Dmitry A. Kazakov
2008-02-23 14:27 ` Robert A Duff [this message]
2008-02-23 16:16 ` Dmitry A. Kazakov
2008-02-25 16:41 ` Adam Beneschan
2008-02-25 19:14 ` Robert A Duff
2008-02-22 14:23 ` Stefan Lucks
2008-02-22 16:52 ` Adam Beneschan
2008-02-22 14:26 ` Robert A Duff
2008-02-22 15:22 ` Stefan Bellon
2008-02-22 23:03 ` Adam Beneschan
2008-02-23 10:19 ` Stefan Bellon
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox