Czy Ruby ma coś w rodzaju wyrażeń listowych Pythona?
Python ma fajną funkcję:
print([j**2 for j in [2, 3, 4, 5]]) # => [4, 9, 16, 25]
W Rubim jest jeszcze prostsze:
puts [2, 3, 4, 5].map{|j| j**2}
ale jeśli chodzi o pętle zagnieżdżone, Python wygląda na wygodniejszy.
W Pythonie możemy to zrobić:
digits = [1, 2, 3]
chars = ['a', 'b', 'c']
print([str(d)+ch for d in digits for ch in chars if d >= 2 if ch == 'a'])
# => ['2a', '3a']
Odpowiednikiem w Ruby jest:
digits = [1, 2, 3]
chars = ['a', 'b', 'c']
list = []
digits.each do |d|
chars.each do |ch|
list.push d.to_s << ch if d >= 2 && ch == 'a'
end
end
puts list
Czy Ruby ma coś podobnego?