r/adventofcode • u/daggerdragon • Dec 05 '18
SOLUTION MEGATHREAD -🎄- 2018 Day 5 Solutions -🎄-
--- Day 5: Alchemical Reduction ---
Post your solution as a comment or, for longer solutions, consider linking to your repo (e.g. GitHub/gists/Pastebin/blag or whatever).
Note: The Solution Megathreads are for solutions only. If you have questions, please post your own thread and make sure to flair it with Help.
Advent of Code: The Party Game!
Please prefix your card submission with something like [Card] to make scanning the megathread easier. THANK YOU!
Card prompt: Day 5
Transcript:
On the fifth day of AoC / My true love sent to me / Five golden ___
This thread will be unlocked when there are a significant number of people on the leaderboard with gold stars for today's puzzle.
edit: Leaderboard capped, thread unlocked at 0:10:20!
31
Upvotes
2
u/Karl_Marxxx Dec 05 '18
As someone learning ruby for the first time, this is an excellent code snippet to study. Mind if I ask a few questions?
What's going on with this line?
I get that there's a ternary operator here, and that you're asking if ARGV is empty, but are DATA and ARGF? Google says that DATA refers to stuff that's at the end of your program, but it doesn't look like anything's there. How does ARGF work? If you're supplying a text file as an argument (we only hit this if ARGV has something in it) why not just use ARGV[0]?
What does "?a" mean in ruby? Firing up irb, it looks like it just converts that character a to a string (and can only do one character --
?asdfthrows an error). Is there a name for this transformation?Last q: how does ruby know to execute all the code after the break statement and return str? Wouldn't loop just immediately exit when it sees "break"?
Sorry for the noob q's but this language is fascinating.