Мелочь. List comprehension.

Давайте посмотрим на эти питоновые строчечки:

[x for x in [0,1,2,3,4,5] if x % 2 == 0] # => [0, 2, 4]

[0,1,2,3,4,5][::2] # => [0, 2, 4]

А теперь на php-like решения этого в рубях.

arr = [0,1,2,3,4,5]
arr.collect {|x| x if x % 2 == 0 } # => [0, nil, 2, nil, 4, nil]

# Ой, проблемочка. Поправим.
arr.collect {|x| x if x % 2 == 0 }.compact # => [0, 2, 4]

# А еще можно так
arr.select {|x| x % 2 == 0 } # => [0, 2, 4]

# И так
arr.find_all {|x| x % 2 == 0 } # => [0, 2, 4]

# И даже вот так
arr.reject {|x| x % 2 != 0 } # => [0, 2, 4]

Вспомним php-ные ereg, eregi, strtr, strstr, str_replace, match_replace, етц. Ну вы поняли.

FriendFeed comments