近況1, perl

 一旦PHPからは離れ、Perlを使い始めた。
 サブルーチンの引数を@_という名前の配列に入れてしまうというやり方は、以前は気持ち悪くてしかたなかったが、関数ですら名前を付けずに使い捨ててしまうようになった今となっては、まぁ名前の節約という点でアリといえばアリかな、という気がしてきたような気もしないことはない。
 しかし、リファレンスには慣れない。なんでサブルーチンの名前に\&をつけるとサブルーチンのリファレンスが取れて、呼び出すときには->で呼び出す、という仕様になってるのだろうか。名前だけでリファレンスが取れればいいじゃないか、と思ったんだけど、よく考えてみるとperlはサブルーチン呼び出しの括弧が省略できるので、名前だけ書くとサブルーチン呼び出しになってしまうのだね。理屈は分かっても、やっぱ気持ち悪い。
 うーん、括弧の省略と高階関数は、カリー化と可変長引数のような相性の悪さを感じる。そこでRuby高階関数の引数として関数では無くブロックを渡すという仕様にする事で、本質的な相性の悪さをなんとかカバーしている(良くいえばエレガントに解決している)と言えそうな気がする。