reject
не изменяет исходный массив, но возвращает измененную копию. В вашем коде второй оператор возвращает массив с удаленными нечетными записями, но вы отбрасываете его, а затем вызываете .each
для исходного неизмененного массива. Вам нужно будет действовать с измененным массивом, возвращаемым reject
:
f = FibSequence.new(6)
f.reject{|s| s.odd?}.each {|s| print(s,':')}
РЕДАКТИРОВАТЬ: Удалена возможность использовать reject!
, поскольку вопрос основан на Enumerable
, а не Array
.