Mam funkcję która filtruje w ten sposób, że pozostawia liczby nieparzyste
def filter_odd (ary)
ary.keep_if{|element| element.is_a?(Integer)}
ary.keep_if{|element| element.odd?}
end
chciałam zrobić z niej shorthand (nie wiem czy to jest właściwe określenie, ale kod pokazuje o co chodzi
def filter_odd (ary)
ary.keep_if(&:is_a?(Integer))
ary.keep_if(&:odd?)
end
I o ile niższy rządek jest OK to wyższy generuje błąd. Niby nawet wiem w którym miejscu - między znakiem zapytania a nawiasem. Pytanie - dlaczego i czy możliwy jest krótki zapis w takiej sytuacji.
I drugie pytanie - czy dwa takie warunki dałoby się połączyć w celu jeszcze większego skrócenia zapisu?