わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

『メタプログラミングRuby』第1版・第2版のnilガードとプ

メタプログラミングRuby 第2版

メタプログラミングRuby 第2版

第2版が出ていたのは,知っていましたが,校費で買おうか私費にすべきか迷って,時間が過ぎていました.Amazonで,ということで私費で発注してほどなく,届きました.
目次より前のp.xvに,本書ではRuby 2を対象とすることや,Ruby 1.8を対象としていた*1第1版との違いが,書かれていました.
この第1版を読んだとき,「nilガード」について,当ブログ上でおかしいよなあと表明し,簡単なコードで動作確認をしたことがあります.記事名は,そのものずばりのnilガードでした.
第2版ではp.228に載っていました.都合により該当部の書き出しはせず,主要部を挙げていきます.
最初の「風変わりなイディオム」は,第1版・第2版とも a ||= [] です.しかし,「以下を省略した構文である」の次のコードは,第2版では a || (a = []) に変わっていました.なぜこうなるかの説明では,第1版とほぼ同じものも,第2版で書き足されたものもありました.
ifを使った等価なコードも,改訂され,以下のとおりとなっていました.へえそんなところでdefined?が役に立つのかと,読んで思いました.

if defined?(a) && a
  a
else
  a = []
end


内容と別のところで,気になる表示がありました.

見出しの「プ」の字について,半濁点が,「フ」に食い込んでいるのです.
PC上では,濁点と半濁点を目立たせるよう設計したと謳うフォントを見たことがありますが…
フォントも,第2版(の訳書)で変更されたのかな,出版社も変わったわけだし…
などと思いながら,第1版を開くと…

メタプログラミングRuby

メタプログラミングRuby

どうやら同じフォントらしく,そこでもプの半濁点は,フに食い込んでいました.
いえ,開く以前の話でした.第1版は,表紙---書影からも確認できます---,背表紙,裏表紙の「プ」で,半濁点がフに食い込む字形となっているのでした!

(最終更新:2015-12-11 未明.タイトルを「『メタプログラミングRuby 第2版』のnilガードとプ」から変更しました)

*1:しかし第1版のp.32では,「1.9系統を使うことにした」と記した上で,1.8系統でも可,違いがあれば注釈を入れるとなっているのですが.