comp.lang.ada
 help / color / mirror / Atom feed
From: tmoran@acm.org
Subject: Re: Private discrete type as index
Date: Sat, 18 Jan 2003 08:36:56 GMT
Date: 2003-01-18T08:36:56+00:00	[thread overview]
Message-ID: <Im8W9.33333$1q3.5319@sccrnsc01> (raw)
In-Reply-To: wR4W9.33808$F63.664880@news.xtra.co.nz

> No. What I was originally trying to do was an abstraction as close
> to the array as possible (booleans do not matter of course - just
> something to put there). At the same time, I wanted to restrict
> control of the index to the package implementing it
> ...
> So, while I realise I can't (in Ada) provide things like "..",  I can
> provide +/-/</> operations of varying flavours on the index. This
> would keep most (not all, but most) of the array semantics in place.

   type x is new integer;
   type test is array(x range <>) of boolean;
   function "+"(left, right:x) return x;
   function "-"(left, right:x) return x;
   function "*"(left, right:x) return x;
   etc.
would give you quite a lot of control over the index.  Granted you
don't have "limited" and your user can get around you via type
conversion, but, assuming some discipline by your user, is that
amount of control still fatally inadequate for your purposes?
  I'm imagining for instance that "test" is really a giant array
on disk, and you page in parts depending on the currently live
index values.  Or "test" is some kind of tree or graph and "x" is
really a small record with bitfields telling where to go in the
structure. Then perhaps "x+1" means "take the right branch", etc.
A user's saying "test(x(123))" would be complete nonsense, but if
he starts with your supplied constants and only does your "arithmetic",
it could all make sense.



  reply	other threads:[~2003-01-18  8:36 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-11 21:42 Private discrete type as index AG
2003-01-11  2:34 ` James S. Rogers
2003-01-12  0:09   ` AG
2003-01-11  7:16     ` James S. Rogers
2003-01-12  5:47       ` AG
2003-01-11 12:22         ` Dmitry A. Kazakov
2003-01-11 14:36         ` Charles H. Sampson
2003-01-12 19:23 ` Keith Thompson
2003-01-12 19:48   ` tmoran
2003-01-15 16:45     ` Dmitry A. Kazakov
2003-01-18  6:24       ` AG
2003-01-17 14:14         ` tmoran
2003-01-19  1:38           ` AG
2003-01-18  8:36             ` tmoran [this message]
2003-01-19  6:06               ` AG
2003-01-17 16:28         ` 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