最後の引数の直前に & がついている場合、 クラスのto_procメソッドで手続き オブジェクト(Proc)にコンバートされ渡されます。 というわけで (0..10).map &:next #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] なんて事ができるわけです。 見方を変えれば、直前で無理矢理Procオブジェクトに変換してしまえばいいわけです to_procで無理矢理コンバートしたり (0..10).map &2.method(:*).to_proc #=> [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20] Object#methodを使って、むき出しのMethodオブジェクトとして渡してあげる事だってできます Methodの場合はself を call する Proc オブジェクトを生成します hoge = 2.method