Ruby では繰り返しを
1.upto(10) {|x| puts x}
と書く書き方が好まれますね。また、
(1..10).each {|x| puts x}
という書き方もある。まあ、Ruby に慣れていない人には
for i in 1..10 puts i end
の方がわかりやすいと思うので、僕はこっちで書くこともします。でも、
10.downto(1) {|x| puts x}
は、for
文と範囲演算子では書けないから、仕方がない。まさか
i = 10 while i > 0 puts i i -= 1 end
とはいくら何でも書けないでしょう(そりゃ動きはするが)。
しかし、ここでも書いたけれど、
(1..10).each(&method(:puts))
はちょっとやり過ぎではないかと思う。僕には読みにくい。でも、慣れている人にはこちらの方がスッキリしているのかも知れないが。
僕のような初心者にはわかりにくいのだが、一見メソッドもブロックもオブジェクトではないけれど、これらもじつはオブジェクトにできると。そのうち簡単に纏めよう。
参考:
instance method Object#method (Ruby 2.2.0)
Rubyでメタプログラミング 〜暗黙的に呼ばれるto_procメソッド - (゚∀゚)o彡 sasata299's blog