Kanasan.JS(prototype.js 読書会)に参加した

関西で JavaScript 勉強会を、ということで企画された Kanasan.JS に参加してきました。

細かなレポートは各所に上がってるので、今更まとめる必要はなさそうです。技術的なアレコレに関しては、以下の3つのエントリがよくできてます。

その他のレポートは、主催者のエントリ「Kanasan.JS無事終了しました (Kanasansoft Web Lab.)」のトラックバックから辿れるので、そちらを参考に。

K-conbinator

Prototype.K 関数についてだけ補足しておこう。

関数型な世界に K コンビネータとか I コンビネータというものがあるらしい(参考:SKI combinator calculus - Wikipedia, the free encyclopedia)。

  • (I x) = x
  • ((K x) y) = x

Prototype.K は次のように定義されている。

  K: function(x) { return x }

これって I コンビネータ だよね、というツッコミが入った。

K-conbinator と I-conbinator を JavaScript で実装するとこうなるのかな。

  I: function(x) { return x },
  K: function(x) { return function(){ return x } }

感想

以下、感想。

参加者方々のポテンシャルの高さに唖然としてしまった。JavaScript 初心者といっても、他の言語の上級者が多かったようで、「Perl の○○と一緒だね」とか「Ruby の○○だ」とか「Lisp だと○○だよね」といった会話が飛び交ってる。

自分は prototype.js 1.4.1 を使ったこともあるので、開始時点では知ってる部類に入っていたはずなのに、気づいたら会話を理解するのに必死になってきた。レベル高いなぁ…。

今までは「動くものが書ければいいや」派だったんだけど、反省してもっと言語の深いところまで知っていかなきゃな。例えば、prototype の挙動についても、なんとなく理解はしているけど説明はできない。説明できない、ということは理解できてない、ということ。そう考えると、ちょっと凹み気味でした。

あとは、尊敬する JS ブロガーな Days on the Moon の nanto_vi さんにお会いできたのが嬉しかった。ブログから想像してた通り、JS に対する理解が深くてすごい人でした。