Кажется, что некоторые программисты Ruby в этой теме не понимают, что такое понимание списков. Каждый ответ предполагает преобразование какого-либо существующего массива. Но сила понимания списка заключается в массиве, созданном на лету со следующим синтаксисом:
squares = [x**2 for x in range(10)]
Следующее будет аналогом в Ruby (единственный адекватный ответ в этой теме, AFAIC):
a = Array.new(4).map{rand(2**49..2**50)}
В приведенном выше случае я создаю массив случайных целых чисел, но блок может содержать что угодно. Но это будет понимание списка Ruby.