@kyanny's blog

My thoughts, my life. Views/opinions are my own.

最近読んだもの

#:g1: Common Lispは大文字と小文字を区別しないという誤解

なるほど、むずかしい。よくわからなかった。何かしら配慮しない限りは defun foo のあと defun FOO が評価されると foo が FOO で上書きされてしまう、というのは、技術的には大文字小文字を区別するのだとしても、実用上は大文字小文字を区別しないものと考えて使わないと事故りそうだなと思った。コーディング規約でシンボル名は全て小文字にすべし、とか定めたり、 lint 的なものをかけるのも簡単そうだから運用で十分カバーできそう。

メタな話として、ソースコードの書き方がどのように解釈されるかは言語処理系の仕様次第で普遍的なルールがあるわけじゃないのだな、ということに気づけたのが面白かった。例えば Ruby の場合アルファベット大文字で始まる識別子は定数で、 Ruby しか知らないと他のプログラミング言語においてもそれが当たり前であるかのように考えてしまいがちだが、そういうルールに基づかない世界があっても別に何も不思議ではない。

逆に Common Lisp に慣れている人からすれば「Ruby は識別子の先頭がアルファベット大文字か小文字かによって全然異なる解釈をするから、先頭一文字の case を意識しなくてはならなくて面倒」と感じるのかもしれないわけだ。そういう「自分が常識だと思い込んでいることとの差異(現実に対して自分の感覚のほうがズレている)」を意識するきっかけになった。

CSS再入門 - できる!中央寄せ 2 | CodeGrid

今回もとてもわかりやすかった。平易な文章だが仕組みや理屈を手抜きせず技術的な裏付けありで説明しており、最高。