web-dev-qa-db-ja.com

ブロックの代わりに関数を渡す方法

可能性のある複製:
配列のすべての要素を関数に渡す簡単な方法

私はこれがうまくいくことを知っています:

def inc(a)
  a+1
end
[1,2,3].map{|a| inc a}

しかし、Pythonでは、次のように書くだけです。

map(inc, [1,2,3])

または

[inc(x) for x in [1,2,3])

Rubyでブロックを作成する手順をスキップできるかどうか疑問に思って、これを行いました。

[1,2,3].map inc
# => ArgumentError: wrong number of arguments (0 for 1)
# from (irb):19:in `inc'

誰もこれを行う方法についてのアイデアを持っていますか?

48
Hanfei Sun

質問には答えませんが、本当にすべての変数をインクリメントしたいだけなら、 Integer#next

4.next
#=> 5

[1,2,3].map(&:next)
#=> [2, 3, 4]
9
oldergod