Ruby 初心者スレッド Part 52
■ このスレッドは過去ログ倉庫に格納されています
0293デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANI/Oの反復処理を書く方法はいくつかあって(.... ここで「ほにゃ」を「英大文字変換」と仮定):
(1) 反復構文 until .... end を使う -- Rubyを使い始めたばかりの人向け
until (c = STDIN.getc).nil?
STDOUT.putc c.upcase
end
(2) イテレータ IO#each_char を使う(>>290) -- フツウにRubyらしいやりかた
STDIN.each_char do |c|
STDOUT.putc c.upcase
end
(3) (2) + 遅延評価 Enumuable#lazy を使う -- イマドキ(?)のRubyらしいやりかた(Ruby 2.0から)
STDIN.each_char.lazy.map { |c|
c.upcase
}.each do |c|
STDOUT.putc c
end
・Rubyist Magazine - 無限リストを map 可能にする Enumerable#lazy
http://magazine.rubyist.net/?0041-200Special-lazy
・Enumerable lazy について
http://www.slideshare.net/cuzic/enumerable-lazy
■ このスレッドは過去ログ倉庫に格納されています