argius note

プログラミング関連

iterate with Proc

ブロックに関連する処理で連鎖。
Procは組込みクラス。ブロック内の手続きをオブジェクトとして扱う、というより、手続きさえオブジェクトである、といったほうがたぶん正しい。あまり現代ぽくない言い方すると「名前無しサブルーチン」オブジェクトとでも。
そして、カギカッコはArrayオブジェクト。イテレートを手続きにして処理するには次のようにする。*1

p = proc do |o| print "/*", o, "*/" end
[1, 3, 2, 'A'].each(&p) #=> /*1*//*3*//*2*//*A*/

これも中カッコなし。でも、eachに渡すのにアンパサンドは美しくないです。

*1:2行目のコメントは、Rubyのリファレンスマニュアルにもある書き方で、結果を表す。