Most improved answer
This category is to reward the continued work users put into answers long after they have been posted. After the FGITW effect has dissipated there stops being so much incentive to work on an old answer, but some users put in the effort and really make it shine. The ideal answer here would be one that demonstrates a significant commitment to improvement regardless of the quality of the initial answer. This could be improving the score, or the explanation or both.
Answers in this category don't have to have been initially posted in 2021 but the improvements have to have been made over the course of the year.
Self-nomination
This answer was originally posted in 2017 it was golfed a bit by Martin Ender at first but basically sat unimproved for 3 years. It seemed that this was probably optimal for Lost. 45 bytes seemed like as good as it was going to get.
However in 2021 some new techniques in Lost golf were invented and it became apparent that this might not be so optimal. With some fiddling it was brought down 2 bytes to 43. And then the door was open. How far could it be brought down? JoKing came up with a brilliantly complex 38 byte solution and further effort carefully brought it down to 37. Several more 37s were found and it seemed like there might be a possibility of a 36. And after a few more weeks of work but a 36 was finally discovered putting it where it is today.
The journey from the somewhat straightforward program an incomprehensible square of symbols, has really been a wonderful collaboration. It's amazing that 4 years on this very simple task in Lost is still producing new and interesting golfing opportunities.
Self-nomination
What can I say? This answer went from 417 bytes to 194 through a series of golfs over the last few months. Just now, I found a way to golf off 12 bytes, and I feel like there's still room for improvement.
Self nomination
Whether you love it or hate it, this answer has had significant effort placed into getting its byte count down from 19 to 11. And while that may not seem like much at first glance, it's quite significant given that Fizzbuzz has existed for many years, and yet this was the first answer to get 2 bytes away from single-digit scores.
The journey of this answer starts in August 2020. The initial score was 19 bytes (Ĥɾƛ3∻kf*n5∻kb*+n⟇;
), and had a lot of icky references to the context variable (a variable that allows you to retrieve the argument of a lambda/function/for-loop). This was the best that could be done at the time, because Vyxal was only at version 0.3.0.
Then, in January 2021, the Arn fizzbuzz was posted, coming in at 18 bytes. Now during the later months of 2020, Vyxal had grown enough so that I was able to get 18 bytes too, using the original fizzbuzz I had envisioned during language design. But I wasn't about to be happy sharing tied first-place for shortest non-built-in FizzBuzz; a somewhat obvious golf got the answer down to 17 bytes (Ĥƛ3œı⇿⌊*n5œıₛÔ*+⟇
).
Then, in March 2021, after a while of pondering about how to make the FizzBuzz shorter within existing constructs (as in, getting a shorter fizzbuzz was something I had been planning on and off since January - I used many pages of paper for handwritten experiments as to how best remove bytes), I had the brilliant idea of placing the divisibility of each number by 3 and 5 into a list and using vectorised multiplication of the list of ["Fizz", "Buzz"]
instead of doing each divisibility test individually. Doing so managed to shave another 3 bytes off the answer to get 14 bytes (Ĥƛ35fœkfkb‿*∑⟇
). At this stage, this answer was just trailing behind the second-place built-in answer in Valyrio.
I was pretty happy with myself - 14 bytes was well below the existing Jelly answer that was 20 bytes long, and I thought it would be a while before I had to consider any competition. I was wrong. In April 2021, there was another golfing language (Ash, by Redwolf Programs) being developed that boasted a 12-byte FizzBuzz - 2 bytes shorter than my current record of 14 bytes. Unfortunately, my planning only managed to find a 14 byte limit - I couldn't find any shorter programs with the built-in set of Vyxal 1.x. In order to keep my position as #1 non-built-in fizzbuzz, I'd need to do something big - rewrite the entire language.
Doing so allowed me to add a whole bunch of useful features to Vyxal (such as parallel apply, better constant glyphs, divisibility checks, etc) that would aid my quest to not come up 2 bytes too long. After a few weeks of language designing and implementation, I had an 11 byte solution: ₁ƛ₍₃₅kF½*∑∴
. This was guaranteed to be shorter than the potential Ash fizzbuzz, and ended up beating the aforementioned Valyrio answer, placing it second on the entire leaderboard.
The improvements made to get it from 14 bytes to 11 bytes are subtle, but effective: 35fœ
turned into ₍₃₅
and kfkb‿
turned into kF½
.
And during this time, the explanations of each answer were added, and at one stage in 2021, I had included a detailed description of how to derive the 18 byte fizzbuzz starting from basics.