comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Multiple iterators for a type
Date: Sat, 26 May 2018 15:52:14 +0200
Date: 2018-05-26T15:52:14+02:00	[thread overview]
Message-ID: <peboqf$f7q$1@gioia.aioe.org> (raw)
In-Reply-To: dacd8a64-8cdd-40ac-8701-c06db9ae7e48@googlegroups.com

On 2018-05-26 15:03, Lucretia wrote:
> On Saturday, 26 May 2018 07:59:59 UTC+1, 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.
>>
>> 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.]
>>
>> In short, there is nothing useful Ada 20xx could bring to the problem of
>> dealing with encoded strings.
> 
> Sorry, didn't understand a word of this wrt to my post.
> 
> We can't have user defined array types in Ada? WTF?

There are only built-in arrays in Ada. You cannot have an array ADT 
providing your array object representation and/or implementation of 
array operations.

> What wouldn't work?

Implementation of encoded string with two array views of it, as an array 
of encoding units and an array of characters/glyphs/code points etc.

> How is MI involved here?

An encoded string implements two array interfaces. Add here 
fixed/bounded/unbounded axis and you will have a lot of things to 
inherit from and export to. You would certainly want to be able to mix 
all possible combinations of these.

> What has Ada 20xx got to do with anything?

You can stick to Ada 95. Iterators and interfaces do not help much with 
encoded strings.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  reply	other threads:[~2018-05-26 13:52 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
2018-05-26 13:03       ` Lucretia
2018-05-26 13:52         ` Dmitry A. Kazakov [this message]
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