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

こんなの。