comp.lang.ada
 help / color / mirror / Atom feed
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



  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