From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Containers - nontrivial element access
Date: Wed, 03 Oct 2007 20:22:22 -0400
Date: 2007-10-03T20:22:22-04:00 [thread overview]
Message-ID: <wcc7im33f0h.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 1191441598.702440.314410@22g2000hsm.googlegroups.com
Maciej Sobczak <see.my.homepage@gmail.com> writes:
> On 3 Pa , 00:20, Matthew Heaney <mhea...@on2.com> wrote:
>
>> > BTW - above, PX plays the role of that additional variable that is
>> > sneaked around to the second procedure. Here it just pretends to not
>> > exist by taking the form of a parameter in the outer procedure. I
>> > don't think there is a reasonable way to avoid it.
>>
>> The number of "additional variables" is exactly the same in both the C+
>> + and Ada examples. The only difference is how the variables are
>> named.
>
> No. The difference is in whether the subprogram's protocol is fully
> described by its signature.
>
> Your nested procedures have the signature that gives provisions for
> one parameter only. The other one is sneaked in bypassing the
> signature (so that the protocol is wider than the signature and this
> is not explicit). This hinders analysis.
I don't agree. In Ada, and many other languages, you have to get used
to nested subprograms, and the fact that they can see more-global
stuff. It's really not a big deal, so long as you keep them small.
> I can even think about coding standards that explicitly forbid
> subprograms that use anything other than what is in their signature
> (except for the main subprogram, which might need to access some
> library-level objects).
I can imagine that, too. In fact I've seen it. But it's not really a
good idea. You can't reasonably do iterators, for example, without some
sort of nested procedures.
> Your solution requires some dose of liberal thinking, which I'm not
> easily willing to accept in the language that boasts high-integrity
> mindset. ;-)
- Bob
next prev parent reply other threads:[~2007-10-04 0:22 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-01 21:55 Containers - nontrivial element access Maciej Sobczak
2007-10-01 23:52 ` Alex R. Mosteo
2007-10-02 16:40 ` Matthew Heaney
2007-10-02 23:16 ` Alex R. Mosteo
2007-10-02 20:47 ` Maciej Sobczak
2007-10-02 23:23 ` Alex R. Mosteo
2007-10-02 0:39 ` Jeffrey R. Carter
2007-10-02 16:44 ` Matthew Heaney
2007-10-03 0:20 ` Jeffrey R. Carter
2007-10-03 19:40 ` Maciej Sobczak
2007-10-03 19:56 ` Matthew Heaney
2007-10-03 20:21 ` Dmitry A. Kazakov
2007-10-03 22:37 ` Matthew Heaney
2007-10-04 8:06 ` Dmitry A. Kazakov
2007-10-03 22:02 ` Jeffrey R. Carter
2007-10-04 0:16 ` Robert A Duff
2007-10-07 8:41 ` Jacob Sparre Andersen
2007-10-11 19:15 ` Robert A Duff
2007-10-14 4:59 ` Jacob Sparre Andersen
2007-10-14 7:24 ` Dmitry A. Kazakov
2007-10-14 13:49 ` Georg Bauhaus
2007-10-14 15:07 ` Dmitry A. Kazakov
2007-10-02 20:50 ` Maciej Sobczak
2007-10-03 0:22 ` Jeffrey R. Carter
2007-10-03 8:26 ` Dmitry A. Kazakov
2007-10-03 18:49 ` Jeffrey R. Carter
2007-10-03 19:09 ` Matthew Heaney
2007-10-03 19:15 ` Simon Wright
2007-10-03 19:48 ` Maciej Sobczak
2007-10-03 19:58 ` Matthew Heaney
2007-10-03 19:35 ` Dmitry A. Kazakov
2007-10-02 2:34 ` Randy Brukardt
2007-10-02 16:47 ` Matthew Heaney
2007-10-02 7:23 ` Dmitry A. Kazakov
2007-10-02 16:37 ` Matthew Heaney
2007-10-02 21:02 ` Maciej Sobczak
2007-10-02 22:20 ` Matthew Heaney
2007-10-03 19:59 ` Maciej Sobczak
2007-10-03 22:55 ` Matthew Heaney
2007-10-04 0:22 ` Robert A Duff [this message]
2007-10-04 13:01 ` Georg Bauhaus
2007-10-04 14:01 ` Matthew Heaney
2007-10-04 21:58 ` 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