http://jp.rubyist.net/magazine/?0017
るびま 17 号でました。
今号はなにげにわたしのインタビューが出てます。 添削とダブルだとすさまじいボリュームだ。
添削は結局三本立てです。 以前この日記で募集したときに応募していただいたプログラム 3 本を 全部まとめてやりました。 プログラムの量が増えたぶん、書き換え量は少なめ。 ていうか、指摘のみ。おかげで今月は量のわりに楽だった……。 毎回あんなにきつかったのは全部リライトしてたからだったんだな。
言語探訪の Erlang はおもしろそうだなあ。 とりあえずインストールしてみよかな。
ライブラリ紹介。 ERB の trim_mode の仕様がようやくわかった。 おれはいつも 2 にしてたんだけど、 なんで 2 にしはじめたのかすでに忘れてたもんな。
やーまに。このへんはなんとなく知っていた。 ていうか、以前ささださんに教えてもらった。
(21:33)
Symbol#to_proc のとこだけど、間違えた……。 関数合成じゃなくて高階関数だよ。 やっぱリリース直前に何も考えずに文を追加したのがよくなかった。
高階関数の一部の場合 (渡す関数が一個) を特殊な文法で表現できるようにしたのが Ruby のブロックであるわけだが、 それのさらに特殊なケースを短縮するのが Symbol#to_proc でしょ。 でもあの方向性を求めるならむしろフツーの高階関数に戻ればいいんで、 Ruby のブロックにさらに「工夫」を積み増しするのは違うだろ。 ってことが言いたかったの。
しかも Symbol ってとこがまた気に食わないんだよな。 Symbol < String の件といい、 どうも Rails 方面のやつらと俺とではシンボルの解釈に相当の開きがあるような気 がする。
ちなみに「名前から実体を作る」の話は 「(シンボルという) 名前から (Proc オブジェクトという) 実体を作る」 ってことね。
そういえば、Eiffel では変数名に .create って呼ぶとオブジェクトができるけど、 あれは「名前からモノを存在させる」典型的な例だと思う。 Ruby ではああいうのはないでしょ。
(03:50)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
インタビューイントロの写真はやっぱり「長寿と繁栄を」なんでしょうか :p
いえ、実は全然関係ない元ネタです。
あれがバルカンサインというものだってのは
あとで知りました。
元ネタはひみつー
EiffelはVer.3以降はオブジェクト生成は違う文法になりました。
以前はVoid, Createとあとひとつなんだかわすれちゃったのと3つが「名前に対する操作」だったんですが、そういうのはなくなっちゃったみたいです。
なんと、そうだったんですか。
ありがとうございます。勉強になります。
いま見たら、create と void と forget ですね。
しかし、なくなったということは、やはり名前に対して
操作するのはいかんということだな (と勝手に結論)。