From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=0.0 required=3.0 tests=BAYES_20,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.5-pre1 X-Received: by 2002:a0c:ab49:: with SMTP id i9mr28003772qvb.53.1607884558979; Sun, 13 Dec 2020 10:35:58 -0800 (PST) X-Received: by 2002:a05:620a:2290:: with SMTP id o16mr27694133qkh.101.1607884558768; Sun, 13 Dec 2020 10:35:58 -0800 (PST) Path: eternal-september.org!reader02.eternal-september.org!news.gegeweb.eu!gegeweb.org!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Sun, 13 Dec 2020 10:35:58 -0800 (PST) In-Reply-To: <5dd52f99-49c3-4403-859b-58f8bfdabfb7n@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=37.57.98.164; posting-account=K1cP1QoAAAD_GR6kW2Td0NqGqGBLRE8h NNTP-Posting-Host: 37.57.98.164 References: <867dpmpy50.fsf@stephe-leake.org> <3739d281-8131-4096-b51d-11ac18647aecn@googlegroups.com> <957fd2ad-079d-40c3-8fbf-a7d009deb714n@googlegroups.com> <5dd52f99-49c3-4403-859b-58f8bfdabfb7n@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Advent of code day 12 From: Maxim Reznik Injection-Date: Sun, 13 Dec 2020 18:35:58 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Xref: reader02.eternal-september.org comp.lang.ada:60827 List-Id: Take a look at Ada 2005 Rationale: https://www.adaic.org/resources/add_content/standards/05rat/html/Rat-2-7.ht= ml The `overriding` specification is optional only to keep backward compatibil= ity with Ada 83/95. Usage of this keyword prevents you from errors, when yo= u expect some function to override another from the parent type, but occasi= onally it doesn't. For instance, if one day you rename 'Turn' on interface = type to, say, `Rotate`, without `overriding` keyword the program still comp= iles, but won't work as expected. So `overriding` must be :) =D0=B2=D0=BE=D1=81=D0=BA=D1=80=D0=B5=D1=81=D0=B5=D0=BD=D1=8C=D0=B5, 13 =D0= =B4=D0=B5=D0=BA=D0=B0=D0=B1=D1=80=D1=8F 2020 =D0=B3. =D0=B2 17:41:27 UTC+2,= john....: > On Sunday, December 13, 2020 at 12:40:35 AM UTC-6, Maxim Reznik wrote:=20 > > I used interface and tagged types to make solution more interesting :)= =20 > >=20 > > https://github.com/reznikmm/ada-howto/blob/advent-2020/md/12/12.md > Yes, I look at all the solutions listed on your Advent of Code page at Gi= tHub because I appreciate interesting answers, thank you. :-)=20 >=20 > This reminds me, though; you declare the Controls package, but in both Pa= rt_1 and Part_2 you use "overriding" only on the Move procedure, not on any= other. I'm not familiar with interfaces yet; is there a reason you used th= at word there and nowhere else?