From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: use of 'Base to compensate for the lack of information
Date: Wed, 27 Dec 2017 14:28:17 +0100
Date: 2017-12-27T14:28:17+01:00 [thread overview]
Message-ID: <p2075j$m0$1@gioia.aioe.org> (raw)
In-Reply-To: dc81f170-1442-48d8-af5d-a929cfabfdcb@googlegroups.com
On 2017-12-27 13:29, Mehdi Saada wrote:
> It seems good and practical, but at one time, I need the coefficient
> to be multiplied by the coefficients' array index, which is a
> Natural.
Does not make sense, but ...
> So, I wrote
> with function "*" (E1: in ELEMENT; E2: in NATURAL'Base) return ELEMENT is <>;
>
> But since X'Base meant the unconstrained subtype of X, any type
> defined as "type T is range ..." won't fit in.
Since it is not Integer, yes.
> Yet I don't want any
> assumption on the nature of ELEMENT. It could be defined as Integer,
> Natural, modular types, or be rational made of modular types in case of
> FINITE FIELDS.
Array index of a rational type? That makes any array except empty and
singleton countably infinite, well, well.
> How do I do while keeping that generic design ?
type Index is range <>;
with function "*" (Left : Element; Right : Index)
return Element is <>;
[ with function "*" (Left, Right : Element) return Element is <>; ]
If you want it be any copyable type, then
type Bandersnatch is private;
with function "*" (Left : Element; Right : Bandersnatch)
return Element is <>;
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2017-12-27 13:28 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-27 12:29 use of 'Base to compensate for the lack of information Mehdi Saada
2017-12-27 13:28 ` Dmitry A. Kazakov [this message]
2017-12-27 13:53 ` Mehdi Saada
2017-12-27 16:10 ` Jeffrey R. Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox