forループ - もりもりマッチョのmemo
「numの2乗を求めていき、1000を超えたら出力する」問題。
いくらRubyがオブジェクト指向スクリプト言語であっても、必ずしもクラスを作らないといけないことはない。
breakに引数をつけたら、それがループやブロック付きメソッドの返り値になるのはあまり知られていないと思う。俺も初めて使った。
p 100.times {|num|
square = num * num
break [num, square] if square > 1000
}
# >> [32, 1024]
100.timesが気持ち悪いから、Stream(無限リスト)が欲しくなった。SICPでやったなぁ。