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

  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