comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: Multiple iterators for a type
Date: Sat, 26 May 2018 05:33:38 -0700 (PDT)
Date: 2018-05-26T05:33:38-07:00	[thread overview]
Message-ID: <a59c0fd4-ff29-4119-a94f-02115fda3732@googlegroups.com> (raw)
In-Reply-To: <peb0ld$14fo$1@gioia.aioe.org>

On Saturday, May 26, 2018 at 1:59:59 AM UTC-5, Dmitry A. Kazakov wrote:
> On 2018-05-26 05:57, Luke A. Guest wrote:
> > Stephen Leake <> wrote:
> > 
> >> An "iterator" can be anything you want it to be. As Randy pointed out,
> >> there can be only one that gets special treatment from the compiler, but
> >> you did not mention that as a requirement.
> >>
> > 
> > I’m attempting to implement a Unicode string using UTF-8, so I want the
> > basic iterator over octets, then the next will iterate over the octets and
> > generate code points, then another will be graphème clusters.
> 
> Why do you bother? I mean, there is no solution for having a 
> user-defined array type in Ada. Iterator is only a small part of it. 
> Even if the iterator kludge worked somehow, the rest would not.

Conversely, why do you bother writing this reply, raining on his parade?  Luke never said that he wants to change Ada's array itself.  He said that he wants a type implemented via an array that just happens to have 2 or more other types (i.e., iterators) usable with it.

> Multiple inheritance is not complete either, so having two array 
> interfaces for one object will be extremely difficult and uncomfortable. 
> You will end up with a mess of helper generic packages to emulate full 
> inheritance. [I went that way, there is nothing good there.]

Luke never said that he wants an •array• with  two personalities bolted deeply within the •array• itself.  He said that he want 2 or more iterators traversing the one array.  He implied that 1 or more of them would have:

1) a function to return a UCS4/UTF-32 normalized form, when traversing a UTF-8 sequence of base character plus one or more combining graphemes.

2) a function to return a subarray of denormalized UTF-8 base character plus one or more combining characters, when traversing a fully- or partially-normalized character in the main array.

> In short, there is nothing useful Ada 20xx could bring to the problem of 
> dealing with encoded strings.

We will see if your prediction of the outcome of this thread proves to be true.  If at least one multiple-iterator solution arrises for traversing one single-personalty** array, then your theorem would be proven false by counterexample.

** The single personality of that main array that Luke implies is:  the main array can have any valid UTF-8 characters in it, including any variant of fully-normalized, partially-normalized, and fully-denormalized characters regarding the combining-form graphemes (e.g., for diacritics when focusing on the Latin language-family alphabets).


  reply	other threads:[~2018-05-26 12:33 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-25 16:49 Multiple iterators for a type Lucretia
2018-05-25 19:50 ` Jacob Sparre Andersen
2018-05-25 21:50   ` Randy Brukardt
2018-05-26  3:13 ` Stephen Leake
2018-05-26  3:57   ` Luke A. Guest
2018-05-26  4:44     ` Jere
2018-05-26  6:59     ` Dmitry A. Kazakov
2018-05-26 12:33       ` Dan'l Miller [this message]
2018-05-26 13:03       ` Lucretia
2018-05-26 13:52         ` Dmitry A. Kazakov
2018-05-26 14:22           ` Dan'l Miller
2018-05-26  7:14     ` G.B.
replies disabled

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