comp.lang.ada
 help / color / mirror / Atom feed
From: Lao Xiao Hai <laoxhai@ix.netcom.com>
Subject: Re: disjoint ranges ?
Date: 2000/10/17
Date: 2000-10-18T04:47:10+00:00	[thread overview]
Message-ID: <39ED29F2.8615D8EA@ix.netcom.com> (raw)
In-Reply-To: wccr95fobf6.fsf@world.std.com



Robert A Duff wrote:

> Lao Xiao Hai <laoxhai@ix.netcom.com> writes:
>
> > So, making a feature more powerful might be something such as being
> > able to overload the "in" membership test.
>
> It might be in the abstract, but in the context of Ada, probably not.
>
> >...   For some reason, this
> > operator is not really a first class operator in Ada.   I have often
> > wondered about the rationale for that decision.
>
> What is the type of the right-hand side of "in" here:
>
>     if X in Integer range 1..10 ...
>
> ?  Ada has no way of describing that type.  In order to make "in" a
> normal operator, we would need to invent a way to pass types as
> parameters, and talk about the type of a type (and subtypes).  This is
> not entirely unreasonable in the abstract, but it would be an enormous
> change to Ada.
>
> Consider:
>
>     type T is range 1..100;
>     function "in"(X: T; Y: type-of-T?) return Boolean;
>
> Or maybe it should be T'in?  Anyway, it raises all kinds of questions.
> What *is* the range of T (given that "in" changes it)?

I see your point about the magnitude of the change required to pass a type
as
a parameter.    I suppose I did not think this through as carefully as I
should
have.   Still, it would be nice to be able to do something like this.
On the
other hand.   I don't think there is much virtue in making wrenching
changes
in the language design.

Thanks,

Richard





  reply	other threads:[~2000-10-17  0:00 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-10-12  0:00 disjoint ranges ? Philippe Torres
2000-10-12  0:00 ` Pat Rogers
2000-10-12  0:00   ` Ehud Lamm
2000-10-12  0:00     ` Pat Rogers
2000-10-13  0:00       ` Ehud Lamm
2000-10-13  0:34       ` Jeff Carter
2000-10-13  0:00         ` Marin David Condic
2000-10-14  3:14           ` Robert Dewar
2000-10-13  0:00         ` Philippe Torres
2000-10-14  3:12           ` Robert Dewar
2000-10-16  0:00             ` Robert A Duff
2000-10-16  0:00               ` Lao Xiao Hai
2000-10-17  0:00                 ` Robert A Duff
2000-10-17  0:00                   ` Lao Xiao Hai [this message]
2000-10-18  0:00                   ` dmitry6243
2000-10-18  0:00                 ` Robert Dewar
2000-10-18  0:00                   ` Robert A Duff
2000-10-19  3:08                     ` Overloading "in" (was: disjoint ranges ?) Jeff Carter
2000-10-19  0:00                       ` Ehud Lamm
2000-10-21  0:00                       ` Robert Dewar
2000-10-21  0:00                         ` Jeff Carter
2000-10-16  0:00               ` disjoint ranges ? Robert Dewar
2000-10-13  0:00     ` Philippe Torres
2000-10-13  0:00 ` Lao Xiao Hai
2000-10-14  3:17   ` Robert Dewar
2000-10-16  0:00   ` Robert A Duff
2000-10-13  0:00 ` wayne lydecker
2000-10-13  0:00   ` Lao Xiao Hai
2000-10-23  0:00     ` Charles Hixson
2000-10-24  0:00       ` dmitry6243
2000-10-13  0:00   ` wayne lydecker
2000-10-24  0:00 ` Andrew Cooke
replies disabled

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