Rubyのブロック
Guarded Suspension - qnzm.log(クニジマログ)を読んでの続き。
Rubyのブロックが気になって調べてみた。
http://itpro.nikkeibp.co.jp/article/COLUMN/20050930/221979/
でまつもとさんが
・ブロックが制御構造を作る
・制御構造っぽく見せるためブロックを特別扱いしている
って書いてるのを見つけた。
あと
http://itpro.nikkeibp.co.jp/article/COLUMN/20070725/278238/?P=2
ここの後半もそんなニュアンス。
http://www.notwork.org/~gotoken/mag/cmagazine/gokudo/2nd/#label:16
ここにブロックのよく見られる使い方が書いてあった
・繰り返し
・手続きをパラメータとして渡す
・環境の変更
・制御構造として
なので「構文っぽく」っていうのはRuby的には大切なことらしい。
Pythonでは"コンテキストを作る"ような処理はwithステートメントを使うようだ。
from __future__ import with_statement with file('some.txt', 'r') as f: for line in f: print line こんなの。