Re: Surprise in array concatenation
- From: Robert A Duff <bobduff@xxxxxxxxxxxxxxxxxxxx>
- Date: 07 Sep 2005 16:09:45 -0400
Thierry Pirot <thierrypirot@xxxxxxxxx> writes:
> Robert A Duff writes:
>
> > It breaks the abstraction called "subprogram". As I showed in my
> > example, a procedure is handed an integer value (X'First), which is an
> > offset from the beginning of some object it knows nothing about, and
> > should know nothing about.
> >
> Do you mean :
> the calling subprogram knows about that object (of which a slice is passed) and
> the called subprogram doesn't and shouldn't ?
Yes, that's exactly what I mean.
> I tend to agree, however, if I got it right, I wonder :
> what about a recursive subprogram ?
> It is both the called and calling program.
Good point. And what about the case where there's no recursion,
but the callee _should_ know about that array which was sliced?
The answer must be some sort of a "subarray" abstraction, which
carries with it the original array (or a reference to it).
I haven't thought this through...
> (This may indeed be a bit sophistic,
> actually I have found Ada's passing of slice bounds quite elegant
> within recursive subprograms
> --- wherein a string is conveniently rendered a recursive object by
> Ada's slices, i.e. strings include slices which are (sub)strings).
Yes, in rare cases, including the recursive case you mention, I have
found some use for slices that remember their bounds within the original
array. But in _most_ cases, I've found it an error-prone annoyance.
> Take it Easy Don't worry Be Happy
Good advice. :-)
- Bob
.
- References:
- Re: Surprise in array concatenation
- From: Gene
- Re: Surprise in array concatenation
- From: tmoran
- Re: Surprise in array concatenation
- From: Robert A Duff
- Re: Surprise in array concatenation
- From: Georg Bauhaus
- Re: Surprise in array concatenation
- From: Robert A Duff
- Re: Surprise in array concatenation
- From: Thierry Pirot
- Re: Surprise in array concatenation
- Prev by Date: Re: Surprise in array concatenation
- Next by Date: Re: Surprise in array concatenation
- Previous by thread: Re: Surprise in array concatenation
- Next by thread: Re: Surprise in array concatenation
- Index(es):
Relevant Pages
|