関数があるとしましょう
def odd_or_even n
if n%2 == 0
return :even
else
return :odd
end
end
そして、私は単純な列挙可能な配列を持っていました
simple = [1,2,3,4,5]
そして、 do-end ブロックを使用して、関数でマップを実行しました。
simple.map do
|n| odd_or_even(n)
end
# => [:odd,:even,:odd,:even,:odd]
そもそも関数を定義せずに、どうすればこれを行うことができますか? 例えば、
# does not work
simple.map do |n|
if n%2 == 0
return :even
else
return :odd
end
end
# Desired result:
# => [:odd,:even,:odd,:even,:odd]
は有効なルビではなく、コンパイラはそれについて考えただけで私に腹を立てます。しかし、どうすれば同等のものを実装できますか?
編集
実際には、私の問題に対する解決策は、その背後にある動機/理由よりもはるかに重要であり、ルビーブロックがどのように機能するかをより理解するのに役立ちます:)