Kanasan.JS(prototype.js 読書会)に参加した
関西で JavaScript 勉強会を、ということで企画された Kanasan.JS に参加してきました。
細かなレポートは各所に上がってるので、今更まとめる必要はなさそうです。技術的なアレコレに関しては、以下の3つのエントリがよくできてます。
- Greenbear Diary - Kanasan.JS (別名:prototype.jsのソースにツッコミを入れるオフ) に参加してきました
- ちょっとKanasan.JSまでいってきました - はこべにっき#
- Kanasan.JS レポート: Days on the Moon
その他のレポートは、主催者のエントリ「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 に対する理解が深くてすごい人でした。