Hi there  Im new to Wikipedia so I hope this is the right way to respond anyway Ive been hacking Ruby professionally since  and lots of other languages before and since so Ive soaked up a number of tricks  To answer your questions   Yes the Array constructor can take a block which gets evaluated upon each elements initialization optionally with the index as the block parameter so Arraynewiputs i i will print the numbers  as sideeffect and populate each element with the integer corresponding to its index since that is the last thing evaluated in the block and therefore the implicit return value   The retry statement and r variable were unnecessary since Ruby handles numerical underoverflow by returning  or Infinity respectively both Floats never by raising an exception so really the beginrescue block is not necessary at all moreover the other language implementations appear to consider any value greater than  as overlow so Ill modify the new implementation to be consistent with them  Let me know what you think