From: 18k11tm001@sneakemail.com (Russ)
Subject: Re: proposal for new assignment operators
Date: 25 Jun 2003 12:17:42 -0700
Date: 2003-06-25T19:17:43+00:00 [thread overview]
Message-ID: <bebbba07.0306251117.57e8fe08@posting.google.com> (raw)
In-Reply-To: bdbtav$regf8$1@ID-77047.news.dfncis.de
"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message news:<bdbtav$regf8$1@ID-77047.news.dfncis.de>...
> Russ wrote:
> > count :+ 1
> > EulerAngles :* D2R
> The real problem is not to find a better sequence of characters. The real
> problems are:
Agreeing on a sequence of characters is not a *technical* problem, but
it is a problem nevertheless, and it could actually turn out to be
very difficult
> 1. Ada does not have any assignment operator. It has an assignment
> statement. Carefully observe all the consequences of that. When I and
> others proposed to allow operators be implemented by procedures, the goal
> was to approach this problem.
As someone pointed out on an earlier thread, "+=", ":+", or whatever
you call it, is just "semantic sugar" for a procedure like
"Add_Matrix". It really has nothing to do with assignment per se. So I
fail to see the relevance of the fact that Ada has no assignment
operator.
> 2. Ada isn't C++. One have to provide an easy and safe way to ensure that
> "+" and in-place-"+" have compatible semantics. The language default has to
> be safe. This is why I made another proposal to invent a mechanism
> instructing the compiler to deduce one operations from others. Such things
> exist presently for "/=" which is automatically deduced from "=". And for
> ":=", which is automatically deduced from Finalize, Adjust and assignments
> of the components. IMO we need something like:
I agree it would be nice to have language enforcement of consistency
between operators, but I think that would be going beyond what Ada
already allows. Does Ada require a user-defined "+" operator to be
consistent with the corresponding "-" operator? No. "+" could add
matrices, and "-" could send email to Santa Claus.
> procedure ":+" (L : in out Matrix; R : Matrix);
> function "+" (L, R : Matrix) return Matrix;
> for "+" use ":+";
How about
function "+" (L, R : Matrix) return Matrix is
Result: Matrix := L;
begin
Result :+ R;
return Result;
end "+";
> But it is not an easy issue. Consider tagged types. You have overridden
> ":+", but not "+". What have the language to say in such cases? Again, Ada
> need not to become Ada += C++; One C++ is already too much for our planet.
Maybe I'm missing something, but I don't see why these concerns are
any different than they would be for any other function or procedure.
> -------
> Provided 1.& 2. one could just enlarge the set of lexical elements and let
> the programmer to choose what he/she wants. I would like to see "<+>",
> "[+]", "(+)", "+:=", "<+>:=" etc added, but is that worth the efforts?
next prev parent reply other threads:[~2003-06-25 19:17 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-06-25 6:23 proposal for new assignment operators Russ
2003-06-25 8:49 ` Preben Randhol
2003-06-25 10:28 ` Dmitry A. Kazakov
2003-06-25 10:36 ` Lutz Donnerhacke
2003-06-25 17:49 ` Dmitry A. Kazakov
2003-06-26 10:37 ` Lutz Donnerhacke
2003-06-27 8:15 ` Dmitry A. Kazakov
2003-06-27 14:21 ` Hyman Rosen
2003-06-25 19:17 ` Russ [this message]
2003-06-25 10:39 ` Larry Kilgallen
2003-06-25 12:06 ` Preben Randhol
2003-06-25 13:40 ` Peter Hermann
2003-06-25 22:12 ` Georg Bauhaus
2003-06-26 8:03 ` Preben Randhol
2003-06-26 8:25 ` Vinzent Hoefler
2003-06-26 15:02 ` Stephen Leake
2003-06-26 17:54 ` Georg Bauhaus
2003-06-26 18:32 ` Stephen Leake
2003-06-27 13:21 ` Georg Bauhaus
2003-06-26 16:32 ` Preben Randhol
2003-06-26 17:41 ` Georg Bauhaus
2003-06-26 17:58 ` Preben Randhol
2003-06-26 2:36 ` Steve
2003-06-26 2:33 ` Russ
2003-06-26 23:02 ` John R. Strohm
2003-06-25 14:07 ` Frank J. Lhota
2003-06-25 16:27 ` Warren W. Gay VE3WWG
2003-06-26 3:09 ` Russ
2003-06-26 6:27 ` Vinzent Hoefler
2003-06-26 10:49 ` Larry Kilgallen
2003-06-26 18:08 ` Russ
2003-06-26 18:19 ` Preben Randhol
2003-06-26 18:45 ` Larry Kilgallen
2003-07-02 15:57 ` Kevin Cline
2003-07-02 17:10 ` tmoran
2003-07-02 18:27 ` Hyman Rosen
2003-07-02 20:20 ` tmoran
2003-07-03 1:48 ` Richard Riehle
2003-07-03 3:07 ` Hyman Rosen
2003-07-03 5:12 ` Randy Brukardt
2003-07-03 13:03 ` Hyman Rosen
2003-07-03 14:46 ` Stephen Leake
2003-07-04 1:17 ` James Rogers
2003-07-07 4:29 ` Hyman Rosen
2003-07-08 1:10 ` James Rogers
2003-07-08 13:59 ` Hyman Rosen
2003-07-09 0:12 ` James Rogers
2003-07-09 3:00 ` Hyman Rosen
2003-07-07 15:36 ` Matthew Heaney
2003-07-14 1:39 ` Richard Riehle
2003-07-14 2:54 ` Hyman Rosen
2003-07-16 3:14 ` Richard Riehle
2003-06-27 13:34 ` Georg Bauhaus
2003-06-27 23:12 ` Russ
2003-06-27 23:21 ` Larry Kilgallen
2003-06-28 18:51 ` Russ
2003-06-27 18:02 ` Warren W. Gay VE3WWG
2003-06-28 3:50 ` Russ
2003-06-30 15:58 ` Warren W. Gay VE3WWG
2003-06-25 19:44 ` Bill Findlay
2003-06-26 2:06 ` Russ
2003-06-26 2:33 ` Bill Findlay
2003-06-26 5:54 ` Karel Miklav
2003-06-26 12:17 ` Georg Bauhaus
2003-06-26 12:52 ` Joseph Dalton
2003-06-26 18:11 ` Frank J. Lhota
-- strict thread matches above, loose matches on Subject: below --
2003-06-27 5:35 christoph.grein
2003-06-27 9:57 ` Preben Randhol
2003-06-27 14:11 ` Georg Bauhaus
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox