Scheme on JavaScript 作りました
昨日は、1000speakers の第1回のイベントがありました。1次会は Ustream にて参加し、2次会から現地で参加しました。
2次会でSICP読書会の話で盛り上がり、水曜日の読書会に参加しようと言うことになり、amachang など数名の方々に色々と Scheme の書き方を教えてもらいました。
3次会が楽しかったです!23:30頃からサイボウズラボにて3次会が始まったんですが、僕が、せっかく教えて頂いたので、Scheme の実装を JavaScript で始めたら、西尾くん(id:nishiohirokazu)と id:amachang が参加し始め、実装大会となりました。
その5時間の成果が、http://goldenscheme.accelart.jp/ です。
全員、基本文法は実装できました!!
処理系を実装するに当たり、言語を問わず、一般論として、難しいのは2カ所です。
- 変数のスコープ - define, let, set!
- 関数呼び出し - lambda (まぁ、これは、定義だけど)
ちゃんとそこら辺を実装できました!それ以外の部分は Scheme の場合は、継続とマクロが気になりますが、まぁ、たいていの標準関数は単純作業だと思います。
いや〜 楽しかった。
西尾君や amachang もソースを公開してくれると言うことなので、3人とも、違う実装方法をとっているので、差を見比べてみると面白いと思います。