comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: OO Style with Ada Containers
Date: Tue, 20 Nov 2007 13:13:49 -0800 (PST)
Date: 2007-11-20T13:13:49-08:00	[thread overview]
Message-ID: <400347d7-aa93-4175-a3dc-e415ad0d9ca3@i29g2000prf.googlegroups.com> (raw)
In-Reply-To: 4182086a-2968-4c42-b08a-1a30b05fcf63@c29g2000hsa.googlegroups.com

On 20 Lis, 18:00, Matthew Heaney <mhea...@on2.com> wrote:

> > On 19 Lis, 23:16, Matthew Heaney <mhea...@on2.com> wrote:
>
> > 1.
> > The most important part of STL is the notion of range-based iteration.
> > Every single algorithm that iterates over something gets a pair of
> > iterators denoting the range to be visited.
>
> > sort(v.begin(), v.end());
>
> But there's nothing that precludes that in Ada:
[...]

Right, but it's not there (in AARM).

This is probably where we actually disagree. When you say that
something is similar to STL, then I expect to *find* STL-like concept
and solutions around it, not that I *can* have them if I code them
myself.

I really appreciate the examples you gave, I have learned something
from them.
Still, the thing that bothers me is that I have not seen such examples
in neither "the" Ada book, nor in AARM itself (and not on this group
during the last two years). This is what builds the spirit of some
particular solution. I see that you can use Ada to achieve arbitrary
effect, but your examples are the first I seen written like this (you
might still argue that I haven't seen enough). I assume this is
because nobody actually uses Ada.Containers like this. If this is true
(and based on "the" Ada book, AARM and this group, this statement is
justified), then from my perspective the STL-like coding is not part
of the spirit and culture of Ada.Containers.

Similarly, I might say that I can have algorithms that work on whole
containers in C++:

template <class Container>
void sort(Container & c)
{
    sort(c.begin(), c.end());
}

but in practice nobody writes like that. It is definitely possible,
but not part of the culture.


> > Iterator to the vector is a random access iterator, because vector
> > itself is inherently random-accessible.
> > This is why I was able to do
> > the above arithmetics to initialize the iterator to the middle of the
> > vector.
>
> As you can in Ada.

You cannot do arithmetics with cursors. They don't have appropriate
operators and the examples you shown work with indices, not with
cursors. Cursors themselves can be only incremented and decremented.

In this regard Ada's cursors are closer to Java than to STL.


In any case, your examples are a good motivation for more learning.
Thank you for your patience. :-)

--
Maciej Sobczak * www.msobczak.com * www.inspirel.com



  parent reply	other threads:[~2007-11-20 21:13 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-14 23:28 OO Style with Ada Containers braver
2007-11-14 23:50 ` Adam Beneschan
2007-11-14 23:59   ` braver
2007-11-15  0:24     ` braver
2007-11-15  9:36       ` Ludovic Brenta
2007-11-15 10:36         ` braver
2007-11-15 11:35           ` Ludovic Brenta
2007-11-15 13:50             ` braver
2007-11-19  2:45               ` Matthew Heaney
2007-11-15 18:22             ` braver
2007-11-15 20:18               ` Ludovic Brenta
2007-11-19  2:48                 ` Matthew Heaney
2007-11-19  2:47               ` Matthew Heaney
2007-11-19  2:39             ` Matthew Heaney
2007-11-19  2:38           ` Matthew Heaney
2007-11-19  2:36         ` Matthew Heaney
2007-11-19  2:24       ` Matthew Heaney
2007-11-23 10:28         ` braver
2007-11-23 13:29           ` Martin Krischik
2007-11-23 14:19             ` Georg Bauhaus
2007-11-25 13:38           ` Ludovic Brenta
2007-11-26  3:58             ` Matthew Heaney
2007-11-26  3:55           ` Matthew Heaney
2007-11-23 22:25         ` braver
2007-11-23 22:46           ` Pascal Obry
2007-11-23 22:52             ` braver
2007-11-26  4:09               ` Matthew Heaney
2007-11-26  4:07             ` Matthew Heaney
2007-11-26  4:03           ` Matthew Heaney
2007-11-26 13:45             ` Matthew Heaney
2007-11-26 19:09               ` braver
2007-11-26 20:29                 ` Matthew Heaney
2007-11-27 19:31                   ` Georg Bauhaus
2007-11-27 20:12                     ` Matthew Heaney
2007-11-25 14:08         ` braver
2007-11-26  4:21           ` Matthew Heaney
2007-11-19  1:04   ` Matthew Heaney
2007-11-15  8:43 ` Dmitry A. Kazakov
2007-11-15 14:04   ` Maciej Sobczak
2007-11-19  2:53     ` Matthew Heaney
2007-11-19 13:44       ` Maciej Sobczak
2007-11-19 14:44         ` Martin
2007-11-19 15:51         ` Matthew Heaney
2007-11-19 17:33           ` Markus E L
2007-11-19 21:29           ` Maciej Sobczak
2007-11-19 22:16             ` Matthew Heaney
2007-11-19 22:22               ` Matthew Heaney
2007-11-20 14:11               ` Maciej Sobczak
2007-11-20 17:00                 ` Matthew Heaney
2007-11-20 17:17                   ` Matthew Heaney
2007-11-20 21:13                   ` Maciej Sobczak [this message]
2007-11-20 21:57                     ` Matthew Heaney
2007-11-21  4:51                     ` Matthew Heaney
2007-11-21  9:18                       ` Georg Bauhaus
2007-11-21 15:59                         ` Maciej Sobczak
2007-11-21 17:41                           ` Georg Bauhaus
2007-11-21 22:25                         ` Jeffrey R. Carter
2007-11-20 18:06                 ` Georg Bauhaus
2007-11-19 16:19         ` Dmitry A. Kazakov
2007-11-19 20:45           ` Maciej Sobczak
2007-11-20  2:24             ` Matthew Heaney
2007-11-20  9:06             ` Dmitry A. Kazakov
2007-11-20 12:16               ` Georg Bauhaus
2007-11-21 15:17                 ` Dmitry A. Kazakov
2007-11-19  2:50   ` Matthew Heaney
2007-11-19  1:03 ` Matthew Heaney
replies disabled

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