comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <stephen_leake@stephe-leake.org>
Subject: Advent of Code day 2
Date: Wed, 02 Dec 2020 14:47:27 -0800	[thread overview]
Message-ID: <86blfbj05c.fsf@stephe-leake.org> (raw)

This is an example of the customer problem spec not being complete; in
the example, all the letter positions are single digit, so my first
draft assumed that, which made finding the values trivial. But then the
real input has 1 or 2 digit numbers.

Handling that took me a while; first I had to actually understand the
semantics of Ada.Strings.Index (Source, Set, Test); "the smallest index
satisfying the test" does _not_ produce a span of characters matching
the test; I should have used Gnatcoll.regexp.

Then I found an indent bug in the development version of emacs ada-mode,
which I took a detour to fix. Which is one reason to do this contest;
writing Ada code is a good way to find bugs in ada-mode. (just out of
curiosity; what development environments are you all using?)

Then for the second puzzle, the fact that Ada String slices _don't_ have
first index 1 confused things; I ended up writing a Slide function to
keep the logic simpler.

Finally got it right.

I was hoping to use 'Reduce in the sled rental count, but GNAT Community
2020 -gnat2020 -gnatX doesn't support that. I did use @, which I like a
lot.

-- 
-- Stephe

Written from unceded ancestral homelands of the Huichiun, an Ohlone
people,for which I pay Shuumi Land Tax

             reply	other threads:[~2020-12-02 22:47 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-02 22:47 Stephen Leake [this message]
2020-12-02 23:45 ` Advent of Code day 2 John Perry
2020-12-03 11:52   ` Stephen Leake
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox