comp.lang.ada
 help / color / mirror / Atom feed
From: John Smith <yoursurrogategod@gmail.com>
Subject: Re: Question on bounded / unbounded strings
Date: Fri, 23 Sep 2016 16:58:21 -0700 (PDT)
Date: 2016-09-23T16:58:21-07:00	[thread overview]
Message-ID: <da9acaf0-b980-428b-85de-c7197d98ddb1@googlegroups.com> (raw)
In-Reply-To: <ns010s$1s8h$1@gioia.aioe.org>

On Thursday, September 22, 2016 at 3:25:18 AM UTC-4, Dmitry A. Kazakov wrote:
> On 22/09/2016 04:10, John Smith wrote:
> 
> > I've found the ease with which you can append or manipulate unbounded
> > strings to be very convenient.
> 
> 1. There is no need to append to a string in no less than 90% of cases.

The percentage in this case depends on what application you are developing.  Sometimes you will need to do this more often, sometimes less often.

> 
> 2. Unbounded_String manipulations are *very* inconvenient. Largely 
> because of their design flaw in Ada (no array interface), but nonetheless.

Yes, there is that.  However, that's not a very real inconvenience.  I can easily get the length of the string, get a sub-string, find a sub-string in the main string, etc.

If anything, a fixed string is less convenient since you need to walk on eggshells and cannot simply assign a new value to the existing string.

> 
> > Furthermore, I don't need to worry about
> > computing the bound of my string.
> 
> Neither do I, I never ever used bounded strings. They are totally 
> useless, IMO.
> 

When I said bound, I meant the length ;-)

> > But I genuinely am curious about your view on this and why.
> 
> As I said in 90% cases the string is given, it is an input. All strings 
> derived from the input strings are substrings (or their derivatives).
> 

If you need to separate a large string into a bunch smaller ones that do not have a pre-determined size, using a fixed string does not make any sense.

> The use cases like tokenizing are virtually non-existent, they are just 
> bad programming practices coming from scripting languages which have no 
> decent support of string characters iteration and from languages 
> incapable to return strings as a result of function call.
> 

Could you please give an example.  I'm used to Python and it's trivial to have a function return a string.

> As for 10% when strings are output, e.g. string formatting, unbounded 
> strings are no more usable. The output length is usually fixed 
> consisting out of fields. The substrings are aligned in the fields. It 
> is far easier with plain strings and substrings.
> 

When you do need to build a string, it is far easier to have one unbounded string that is added on to and then written out.  Having a fixed string means that I woul need something along the lines of a recursive solution, since I can't extent the size of the string after it's been instantiated.

> The idea of using Unbounded_String as an accumulator, e.g. for some 
> messages log, is just awful. It won't work and at the end you will need 
> to have a special data structure (text buffer) for this (with plain 
> strings as building blocks).
> 

Why won't it work?  I've built HTML files and small reports using an unbouded string and it worked fine.

I don't agree with you on this topic.

  parent reply	other threads:[~2016-09-23 23:58 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-13  8:46 Question on bounded / unbounded strings Arie van Wingerden
2016-09-13  9:04 ` Dmitry A. Kazakov
2016-09-22  2:10   ` John Smith
2016-09-22  7:24     ` Dmitry A. Kazakov
2016-09-22  9:01       ` J-P. Rosen
2016-09-22  9:53         ` Dmitry A. Kazakov
2016-09-22 10:58           ` G.B.
2016-09-22 12:05             ` Dmitry A. Kazakov
2016-09-22 14:14               ` G.B.
2016-09-22 17:18                 ` Dmitry A. Kazakov
2016-09-22 11:08           ` J-P. Rosen
2016-09-22 12:05             ` Dmitry A. Kazakov
2016-09-22 13:18           ` Maciej Sobczak
2016-09-22 13:52             ` Dmitry A. Kazakov
2016-09-22 14:51               ` Maciej Sobczak
2016-09-22 17:13                 ` Dmitry A. Kazakov
2016-09-23  5:50                   ` Maciej Sobczak
2016-09-23  6:36                     ` Simon Wright
2016-09-23  7:48                       ` Dmitry A. Kazakov
2016-09-28 20:55                     ` Randy Brukardt
2016-09-23 23:58       ` John Smith [this message]
2016-09-24  7:52         ` Dmitry A. Kazakov
2016-09-24 16:25           ` John Smith
2016-09-24 17:44             ` Dmitry A. Kazakov
2016-09-24 18:33               ` John Smith
2016-09-24 18:37               ` John Smith
2016-09-24 18:59               ` John Smith
2016-09-25  8:50                 ` Dmitry A. Kazakov
2016-09-25 23:35                   ` brbarkstrom
2016-09-26  7:28                     ` Dmitry A. Kazakov
2016-09-26 12:39                       ` brbarkstrom
2016-09-28 21:09             ` Randy Brukardt
2016-09-30  7:59               ` Björn Lundin
2016-09-13  9:35 ` gautier_niouzes
2016-09-13 10:41 ` Alejandro R. Mosteo
2016-09-13 17:41 ` Jeffrey R. Carter
2016-09-13 17:59 ` Björn Lundin
2016-09-14 11:23 ` Arie van Wingerden
2016-09-14 12:26   ` Arie van Wingerden
2016-09-14 12:28   ` Arie van Wingerden
2016-09-14 12:57 ` Arie van Wingerden
2016-09-14 19:39   ` Jeffrey R. Carter
2016-09-17 16:35     ` Arie van Wingerden
2016-09-16 14:43 ` Olivier Henley
2016-09-17 16:35   ` Arie van Wingerden
replies disabled

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