数字のループ(Ruby)

何となくやってみました。

$ pry
[1] pry(main)> 5.times {|i| puts i}
0
1
2
3
4
=> 5
[2] pry(main)> (1..5).each {|i| puts i}
1
2
3
4
5
=> 1..5
[3] pry(main)> 1.upto(5) {|i| puts i}
1
2
3
4
5
=> 1
[4] pry(main)> for i in 1..5
[4] pry(main)*   puts i
[4] pry(main)* end  
1
2
3
4
5
=> 1..5
[5] pry(main)> i = 1
=> 1
[6] pry(main)> while i <= 5
[6] pry(main)*   puts i
[6] pry(main)*   i += 1
[6] pry(main)* end  
1
2
3
4
5
=> nil
[7] pry(main)> def count(i)
[7] pry(main)*   return if i > 5
[7] pry(main)*   puts i
[7] pry(main)*   count(i + 1)
[7] pry(main)* end  
=> :count
[8] pry(main)> count(1)
1
2
3
4
5
=> nil
[9] pry(main)> co = Enumerator.new do |y|
[9] pry(main)*   i = 1
[9] pry(main)*   while i <= 5
[9] pry(main)*     y << i
[9] pry(main)*     i += 1
[9] pry(main)*   end  
[9] pry(main)* end  
=> #<Enumerator: ...>
[10] pry(main)> loop {puts co.next}
1
2
3
4
5
=> nil
[11] pry(main)> co = Enumerator.new do |y|
[11] pry(main)*   i = 1
[11] pry(main)*   loop do
[11] pry(main)*     y << i
[11] pry(main)*     i += 1
[11] pry(main)*   end  
[11] pry(main)* end  
=> #<Enumerator: ...>
[12] pry(main)> puts co.take(5)
1
2
3
4
5
=> nil
[13] pry(main)> puts 1.step.take(5)
1
2
3
4
5
=> nil

ふーんという感じでしょうか。