From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Reconsidering assignment
Date: Thu, 07 Jun 2007 00:15:46 -0700
Date: 2007-06-07T00:15:46-07:00 [thread overview]
Message-ID: <1181200546.608422.95280@h2g2000hsg.googlegroups.com> (raw)
In-Reply-To: <usl94pufq.fsf@STRIPCAPStelus.net>
On 7 Cze, 00:52, Ray Blaak <rAYbl...@STRIPCAPStelus.net> wrote:
> > procedure To_Upper(S : in out String);
>
> > Such a procedure is perfectly reasonable.
> > What is not reasonable is this:
>
> > procedure Swap(X, Y : in out String);
>
> I don't see the difference. Consider:
>
> declare
> s : String := "123";
> begin
> To_Upper(s);
> end;
>
> procedure To_Upper(S : in out String)
> begin
> s := "12345678";
> end;
Good point, but the solution is simple: ban it. :-)
You can ban it on the basis that the modifying operation (the s :=
"12345678") operates in (ie. potentially modifies) the constraint-
space in the context where the constraint itself is statically
unknown.
This is OK:
procedure To_Upper(S : in out String) is
begin
for I in S'First .. S'Last loop
S(I) := ...;
end loop;
end;
Above none of the modifying operation (well, there is only one)
operates in the constraint-space of S.
> > procedure Safe_Swap(X, Y : in out String) with X'Length = Y'Length;
>
> Ugh. This is tedious. Seems easier to me to just let the contraint error happen.
The whole Ada is tedious. Let's move to Python, where even the chore
of writing begin/end is eliminated. ;-)
> If you really need this, also have a way to just say "with matching
> constraints" directly, e.g.
>
> with X'Subtype = Y'Subtype
>
> That way one does not have to get all explicit for other types that have many
> explicit constraints.
Yes, that makes sense.
--
Maciej Sobczak
http://www.msobczak.com/
next prev parent reply other threads:[~2007-06-07 7:15 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-06 21:33 Reconsidering assignment Maciej Sobczak
2007-06-06 22:52 ` Ray Blaak
2007-06-07 7:15 ` Maciej Sobczak [this message]
2007-06-07 16:34 ` Ray Blaak
2007-06-07 7:10 ` Stefan Lucks
2007-06-07 7:32 ` Maciej Sobczak
2007-06-07 11:11 ` Stefan Lucks
2007-06-07 16:28 ` Ray Blaak
2007-06-07 9:27 ` Dmitry A. Kazakov
2007-06-07 16:54 ` contracted exceptions (was Re: Reconsidering assignment) Ray Blaak
2007-06-07 20:04 ` contracted exceptions Robert A Duff
2007-06-07 21:11 ` Ray Blaak
2007-06-07 23:44 ` Robert A Duff
2007-06-08 2:19 ` Randy Brukardt
2007-06-08 7:39 ` Dmitry A. Kazakov
2007-06-08 8:53 ` Ray Blaak
2007-06-08 12:08 ` Dmitry A. Kazakov
2007-06-08 17:31 ` Ray Blaak
2007-06-08 18:00 ` Dmitry A. Kazakov
2007-06-08 18:20 ` Georg Bauhaus
2007-06-08 18:56 ` Dmitry A. Kazakov
2007-06-08 19:15 ` Simon Wright
2007-06-09 0:14 ` Randy Brukardt
2007-06-09 2:44 ` Larry Kilgallen
2007-06-09 8:21 ` Dmitry A. Kazakov
2007-06-09 12:32 ` Simon Wright
2007-06-09 18:38 ` Dmitry A. Kazakov
2007-06-09 21:04 ` Simon Wright
2007-06-10 9:21 ` Dmitry A. Kazakov
2007-06-10 11:49 ` Simon Wright
2007-06-10 15:20 ` Dmitry A. Kazakov
2007-06-11 4:13 ` Ray Blaak
2007-06-11 7:58 ` Dmitry A. Kazakov
2007-06-11 17:06 ` Ray Blaak
2007-06-11 19:57 ` Dmitry A. Kazakov
2007-06-10 18:14 ` Georg Bauhaus
2007-06-10 18:12 ` Georg Bauhaus
2007-06-11 7:55 ` Dmitry A. Kazakov
2007-06-11 14:15 ` Bob Spooner
2007-06-11 15:14 ` Georg Bauhaus
2007-06-11 15:20 ` (see below)
2007-06-11 16:39 ` Georg Bauhaus
2007-06-11 19:50 ` Simon Wright
2007-06-08 11:26 ` Martin Krischik
2007-06-08 12:02 ` Robert A Duff
2007-06-08 11:22 ` contracted exceptions (was Re: Reconsidering assignment) Martin Krischik
2007-06-08 17:44 ` Ray Blaak
2007-06-08 12:10 ` contracted exceptions Robert A Duff
2007-06-08 15:56 ` Stefan Lucks
2007-06-08 20:27 ` Pascal Obry
2007-06-09 0:19 ` Randy Brukardt
2007-06-09 18:04 ` Robert A Duff
2007-06-09 18:37 ` Dmitry A. Kazakov
2007-06-09 20:43 ` Robert A Duff
2007-06-10 9:21 ` Dmitry A. Kazakov
2007-06-11 19:18 ` Randy Brukardt
2007-06-12 6:55 ` Jean-Pierre Rosen
2007-06-08 17:40 ` Ray Blaak
2007-06-09 18:14 ` Robert A Duff
2007-06-08 19:18 ` Simon Wright
2007-06-09 22:37 ` Reconsidering assignment Maciej Sobczak
2007-06-10 9:21 ` Dmitry A. Kazakov
2007-06-11 9:04 ` Maciej Sobczak
2007-06-11 13:09 ` Dmitry A. Kazakov
2007-06-11 18:57 ` Randy Brukardt
2007-06-11 21:12 ` Maciej Sobczak
2007-06-12 8:31 ` Dmitry A. Kazakov
2007-06-12 9:31 ` Georg Bauhaus
2007-06-12 10:03 ` Dmitry A. Kazakov
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox