comp.lang.ada
 help / color / mirror / Atom feed
From: "Frank J. Lhota" <NOSPAM.lhota.adarose@verizon.net>
Subject: Re: Adding "()" operator to Ada 200X
Date: Fri, 06 Jun 2003 19:01:46 GMT
Date: 2003-06-06T19:01:46+00:00	[thread overview]
Message-ID: <uy5Ea.14478$b8.437@nwrdny03.gnilink.net> (raw)
In-Reply-To: 4a4de33a.0306060256.52b12d70@posting.google.com

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1679 bytes --]

"M�rio Amado Alves" <maa@liacc.up.pt> wrote in message
news:4a4de33a.0306060256.52b12d70@posting.google.com...
> > IMO one should first add a new set of types: "index" types. (Dmitry)
>
> Maybe *every* 'conceptual' type should be in the type system.
> A la Smalltalk.
> This includes exceptions (cf. AE'2001) and, yes, ranges.
> It always bugged me what is the 'return type' of the Range attribute.
> I think it's the only attribute that does not return a type proper.
> Even exceptions and tags have their 'surrogates' in the type system.
> I can see "I .. J" as sugar for "Range (From => I, To => J)".
> ".." as an operator!

This would dovetail nicely with the idea of an Ada iterator schemes. The
"range" object could encapsulate the notion of an oredered list of values.
Each Range object would a 'First element and a 'Last element, as well as the
'Succ / 'Pred functions to move forward / backward through the values in the
range. If Ada 200X had a range object, it would be nice to be able to define
the "in" operator for it. Moreover, it would be great if the "for" loop
could work with range objects, i.e.

    for I in Range_Object loop ... end loop;

would execute the loop body with I set to each value in Range_Object,
visited in Forward order, starting at 'First and ending with 'Last.
Similarly

    for I in reverse Range_Object loop ... end loop;

would visit the values in Range_Objec in reverse order, i.e. starting with
'Last, then moving towards 'First using the 'Pred function.

> But this be too much to prepare for Ada 200Y :-(
> Ada 20XX maybe, if we're still around :-)

I plan to live to be 100, although I might not be programming at that time.





  parent reply	other threads:[~2003-06-06 19:01 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-02 16:35 Adding "()" operator to Ada 200X Frank J. Lhota
2003-06-02 23:42 ` Matthew Heaney
2003-06-03 14:59   ` Frank J. Lhota
2003-06-03 15:09     ` Frank J. Lhota
2003-06-03 16:04     ` Martin Krischik
2003-06-04 17:28       ` Matthew Heaney
2003-06-04 18:21         ` Frank J. Lhota
2003-06-05  1:15           ` Robert I. Eachus
2003-06-05 14:59             ` Frank J. Lhota
2003-06-05 17:25             ` Matthew Heaney
2003-06-03 20:24     ` Randy Brukardt
2003-06-03 19:52   ` Francisco Javier Loma Daza
2003-06-03  2:56 ` Fionn mac Cuimhaill
2003-06-03 14:02   ` Matthew Heaney
2003-06-03 16:23   ` Mário Amado Alves
2003-06-05 19:02     ` Dmitry A. Kazakov
2003-06-06 10:56       ` Mário Amado Alves
2003-06-06 16:55         ` Chad R. Meiners
2003-06-06 19:01         ` Frank J. Lhota [this message]
2003-06-09 14:15           ` Matthew Heaney
2003-06-07  8:36         ` Dmitry A. Kazakov
replies disabled

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