Why did you rename @gap
to @nn
? I agree it’s not a good name, mainly because I had no real context on what this is even solving, but better than @nn
certainly. If you feel the need to explain what it is in a comment, rename the variable instead. Code is write once, read often. So from the comment, sounds like @gap_divisor
or something might be a good name.
What does lo
stand for? I avoid abbreviations that are not 110% clear in the context.
I’m not sure why you feel the need to choose different variable names for upper_half
and palindrome_half
, reassigning there does not create a union since the variable is not captured anywhere. It’s the same value, just in different representations that are never needed at the same time. I even considered to just add a .map(&.to_s)
initially, but wanted to avoid allocating the two iterators.
Also actually let’s use .skip(count - keep).first(keep)
and maybe extract the printing to a method instead of copy pasting it five times. The initial two variants seems different enough to keep as is, but looking at those it seems too similar too often.