From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: project euler 26
Date: Wed, 6 Sep 2023 17:54:47 +0200 [thread overview]
Message-ID: <uda7c7$2ids2$2@dont-email.me> (raw)
In-Reply-To: <87jzt3qqlb.fsf@bsb.me.uk>
On 2023-09-06 17:16, Ben Bacarisse wrote:
> I am curious to know how reusable this is. Can the packages be
> instantiated in such a way that the argument ranges over the elements
> of, say, and Ordered_Map?
Sure:
with Ada.Containers.Ordered_Maps;
package Integer_Maps is
new Ada.Containers.Ordered_Maps (Integer, Integer);
use Integer_Maps;
package Cursor_Arguments is new Generic_Arguments (Cursor);
package Map_Values is new Generic_Values (Integer);
package Map_Functions is
new Generic_Discrete_Comparable_Valued
(Cursor_Arguments, Map_Values);
Then given X is a map: X : Map;
Map_Functions.Maximum_At (X.First, X.Last, Element'Access)
> Maybe a more generic a solution would involve passing something that can
> be iterated over, rather than two values of an "enumerated" type? I
> mean enumerated in the mathematical sense -- it may be the wrong word in
> Ada.
Yes, but Ada does not have built-in range types. Therefore such design
will not work out of the box with discrete types because 2..999 is not a
proper object in Ada. However, talking about abstractions, you can
create an interval type for the purpose or else use an ordered set of
integers.
> I am asking you but I am also the group. I appreciate your help,
> but don't want you to feel any obligation to keep helping!
No problem.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2023-09-06 15:54 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-04 9:19 project euler 26 CSYH (QAQ)
2023-09-04 11:06 ` Niklas Holsti
2023-09-04 12:39 ` Dmitry A. Kazakov
2023-09-04 16:01 ` Ben Bacarisse
2023-09-04 19:20 ` Dmitry A. Kazakov
2023-09-04 20:18 ` Ben Bacarisse
2023-09-04 21:00 ` Dmitry A. Kazakov
2023-09-04 23:16 ` Ben Bacarisse
2023-09-05 7:23 ` Dmitry A. Kazakov
2023-09-05 15:18 ` Ben Bacarisse
2023-09-05 17:08 ` Dmitry A. Kazakov
2023-09-06 1:10 ` Ben Bacarisse
2023-09-06 7:06 ` Dmitry A. Kazakov
2023-09-06 15:16 ` Ben Bacarisse
2023-09-06 15:54 ` Dmitry A. Kazakov [this message]
2023-09-06 23:32 ` Ben Bacarisse
2023-09-07 9:02 ` Dmitry A. Kazakov
2023-09-08 1:32 ` Ben Bacarisse
2023-09-08 7:23 ` Dmitry A. Kazakov
2023-09-09 0:25 ` Ben Bacarisse
2023-09-09 9:32 ` Dmitry A. Kazakov
2023-09-10 1:20 ` Ben Bacarisse
2023-09-10 8:46 ` Dmitry A. Kazakov
2023-09-10 19:22 ` Ben Bacarisse
2023-09-11 6:53 ` Dmitry A. Kazakov
2023-09-11 16:13 ` Ben Bacarisse
2023-09-12 7:17 ` Dmitry A. Kazakov
2023-09-13 12:24 ` Ben Bacarisse
2023-09-14 6:33 ` Dmitry A. Kazakov
2023-09-14 14:30 ` Ben Bacarisse
2023-09-08 6:09 ` G.B.
2023-09-08 21:02 ` Ben Bacarisse
2023-09-09 8:13 ` G.B.
2023-09-09 21:04 ` Ben Bacarisse
2023-09-10 9:11 ` Dmitry A. Kazakov
2023-09-05 17:35 ` moi
2023-09-04 14:23 ` Dmitry A. Kazakov
2023-09-07 7:31 ` Francesc Rocher
2023-09-15 9:07 ` CSYH (QAQ)
2023-09-19 7:59 ` comp.lang.ada
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox