From: Robert A Duff <bobduff@world.std.com>
Subject: Re: newbie can't get exceptions to work!
Date: Fri, 6 Apr 2001 22:20:38 GMT
Date: 2001-04-06T22:20:38+00:00 [thread overview]
Message-ID: <wccsnjlvfex.fsf@world.std.com> (raw)
In-Reply-To: Pine.BSF.4.21.0104061258090.5067-100000@shell5.ba.best.com
Brian Rogoff <bpr@shell5.ba.best.com> writes:
> On Fri, 6 Apr 2001, Robert A Duff wrote:
> > "Marc A. Criley" <mcqada@earthlink.net> writes:
> > > I was very pleased with the addition of "use type" to Ada 95, despite
> > > the opinion of a some that it's an ugly addition that was included
> > > merely to avoid having to write "renames" clauses for operators.
>
> Hmmm. I think it's ugly because it was included merely to avoid having to
> write use clauses. If you're a no-use fanatic, you should be content with
> not using use clauses, but no, use-phobes thinks it's OK as long as the
> infix syntax is used. So the language is butchered to handle this special
> case.
It has nothing to do with "writing". It has to do with reading.
I'm neither use-phobe nor use-phile. I think it depends on the package,
whether you should say "use" of it. I take it you're a use-phile, and
don't really care if the use-phobes have to write unreadable code. If
so, then I suppose you think "use" should be banished, and everything
should be use-visible by default?
> > Not only do the renames clutter -- they are also quite error prone.
> >
> > Use type is better than nothing,
>
> Nah, no change would have been fine. The syntax is nicely messed up now.
> Once "with type" is part of the standard the mess will get messier, as
> we'll have with and use, with type and use type.
>
> > but even that adds one line of clutter.
> > IMHO, you should be able to refer to operators *anywhere*, without
> > having to say anything special.
>
> Why, what's so special about operators?
Operators are used when the programmer thinks the concise notation of
operator syntax makes the code more readable than identifier-named
functions. Eg, we think that:
A + B*C
is more readable than:
Add(A, Multiply(B, C))
If that's true, it makes no sense at all to ever say:
"+"(A, "*"(B, C))
or:
Some_Package."+"(A, Some_Package."*"(B, C))
Given that the whole point of operators is to use a concise symbol
instead of an English word, I think one should always use operator
notation for calls to operator functions. If you always "use"
everything, then you can do that. But I think it makes sense not to
'use' a particular package, so you have to say
Some_Package.Some_Function, but still want to write calls to operators
using operator notation (infix, etc).
>... Well, OK, Ada makes them a bit
> special by not allowing you to define new ones (an annoying restriction
> IMO) but they are just functions, right?
I agree that it's an annoying restriction. The reason, I guess, is that
if you allowed someone to define an operator "$" or "&^%$$##", you would
have to worry about the syntax. What is the precedence of these
operators? I think Cecil has a nice solution to the problem.
> > You don't have to say "use" in order to
> > write "X := Y";
>
> ":=" is special. It's not a function, and you can't redefine it, except
> for very special types. Yes, I know you know all this :-).
Yes, I know it, and I know you know it, and I know you know I know it. ;-)
I can still gripe about it.
It's not just ":=", but also notations like "in", "and then", and "A(I)"
(I would prefer "A[I]", by the way) and literal notation. These are all
"special" in that you don't need to say "use" to use these notations
(and also in that you can't redefine them; sigh). They look like
operators to me, but Ada says otherwise.
> > why should you have to write "use" in order to write
> > "if X = Y ..."?
>
> "=" is also kind of special, right?
Unfortunately true.
> Are you proposing that assignment and equality are both special enough
> that no use is necessary, or are you saying all operators should be exempt
> from being use (type)-ed?
I meant that all operators should be exempt. I wasn't speaking
particularly about ":=" and "=" (and I realize that Ada defines "=" to
be an operator, but not ":=" or "in", etc).
- Bob
next prev parent reply other threads:[~2001-04-06 22:20 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-04-05 3:19 newbie can't get exceptions to work! Jeff Shipman
2001-04-05 4:25 ` Ed Falis
2001-04-05 11:00 ` martin.m.dowie
2001-04-05 14:21 ` Ted Dennison
2001-04-05 17:50 ` Fraser Wilson
2001-04-05 4:34 ` Jeff Shipman
2001-04-05 4:59 ` Wilhelm Spickermann
2001-04-05 14:14 ` Ted Dennison
2001-04-05 16:37 ` Wilhelm Spickermann
2001-04-06 13:09 ` Marc A. Criley
2001-04-06 15:04 ` Ted Dennison
2001-04-06 16:43 ` Robert A Duff
2001-04-06 17:39 ` Ted Dennison
2001-04-06 21:50 ` Robert A Duff
2001-04-06 20:11 ` Brian Rogoff
2001-04-06 22:20 ` Robert A Duff [this message]
2001-04-06 23:04 ` Brian Rogoff
2001-04-07 5:48 ` Jeffrey Carter
2001-04-10 1:29 ` Robert A Duff
2001-04-07 19:30 ` Robert A Duff
2001-04-07 21:17 ` Brian Rogoff
2001-04-07 21:25 ` Ayende Rahien
2001-04-07 22:57 ` David Starner
2001-04-08 12:10 ` Ayende Rahien
2001-04-08 2:12 ` Larry Hazel
2001-04-08 12:12 ` Ayende Rahien
2001-04-09 16:20 ` Larry Hazel
2001-04-10 2:38 ` Ayende Rahien
2001-04-10 3:25 ` James Rogers
2001-04-08 22:18 ` Brian Rogoff
2001-04-09 15:14 ` Ted Dennison
2001-04-09 17:23 ` Brian Rogoff
2001-04-09 18:23 ` Laurent Guerby
2001-04-09 19:15 ` Brian Rogoff
2001-04-10 18:21 ` Laurent Guerby
2001-04-10 19:44 ` Brian Rogoff
2001-04-11 18:03 ` Laurent Guerby
2001-04-11 18:33 ` Samuel T. Harris
2001-04-14 0:06 ` Robert A Duff
2001-04-12 1:42 ` Mike Silva
2001-04-12 2:38 ` Brian Rogoff
2001-04-12 23:23 ` Laurent Guerby
2001-04-13 2:44 ` Brian Rogoff
2001-04-11 13:24 ` Ayende Rahien
2001-04-11 13:14 ` Mats Karlssohn
2001-04-11 15:08 ` Ayende Rahien
2001-04-11 21:42 ` Fraser Wilson
2001-04-12 23:55 ` Robert A Duff
2001-04-10 2:12 ` Robert A Duff
2001-04-10 3:47 ` Brian Rogoff
2001-04-10 13:40 ` Ada keywords (was: Re: newbie can't get exceptions to work!) Marin David Condic
2001-04-10 14:26 ` Jean-Pierre Rosen
2001-04-09 20:49 ` newbie can't get exceptions to work! Ted Dennison
2001-04-09 21:44 ` Brian Rogoff
2001-04-09 21:59 ` Ted Dennison
2001-04-10 2:54 ` Ayende Rahien
2001-04-10 14:00 ` Ted Dennison
2001-04-10 17:44 ` Fraser Wilson
2001-04-10 6:59 ` Mats Karlssohn
2001-04-10 14:18 ` Ted Dennison
2001-04-10 16:27 ` Mark Biggar
2001-04-11 11:55 ` Mats Karlssohn
2001-04-11 14:34 ` Samuel T. Harris
2001-04-11 15:50 ` Pat Rogers
2001-04-12 6:27 ` Mats Karlssohn
2001-04-11 11:49 ` Mats Karlssohn
2001-04-11 15:38 ` Robert A Duff
2001-04-13 16:12 ` Matthew Woodcraft
2001-04-10 1:41 ` Robert A Duff
2001-04-10 3:03 ` James Rogers
2001-04-10 3:58 ` Brian Rogoff
2001-04-10 21:48 ` Ted Dennison
2001-04-11 15:09 ` Ayende Rahien
2001-04-11 21:57 ` James Rogers
2001-04-11 23:13 ` Brian Rogoff
2001-04-12 6:33 ` Mats Karlssohn
2001-04-12 16:38 ` Brian Rogoff
2001-04-17 7:04 ` Mats Karlssohn
2001-04-17 9:08 ` Jean-Pierre Rosen
2001-04-12 15:16 ` Ted Dennison
2001-04-12 21:22 ` James Rogers
2001-04-10 4:26 ` Brian Rogoff
2001-04-11 15:30 ` Robert A Duff
2001-04-11 17:33 ` Brian Rogoff
2001-04-10 1:26 ` Robert A Duff
2001-04-10 2:11 ` Brian Rogoff
2001-04-14 0:00 ` Robert A Duff
-- strict thread matches above, loose matches on Subject: below --
2001-04-05 5:26 Christoph Grein
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox