2006-05-16
■ [scheme] WebScheme……"SchemeでAjaxしよう"
去年卒論で作ったWebSchemeを、研究室のページで 公開しました。
詳細は向こうのページを見てもらうとして、ここでは向こうに書けないQ&Aを…。(^^;
- これは何?
- JavaScriptで書かれたSchemeインタプリタ(に、ウェブアプリケーション向けの機能を追加したもの)です。オリジナルの処理系はこちら。
- 何ができるの?
- Schemeを用いて、ブラウザ上で動くアプリケーションを作成することができます。とりあえずデモ(数独)とか見ていただければ。Ajax (XMLHttpRequest) もできますよ!
- なぜScheme?
Schemeとか好きだからていうか湯淺研だしえーと、Schemeの高い記述力を生かしてなんたらかんたら。一級継続とか。- 継続ですか?
- 例えば関数内で「一定時間待つ(sleep)」命令は、現在の継続を保存し、一定時間後に再開することでうまく実装できたりします。…とかなんとか。
- jsSchemeとの違いって、ライブラリ追加しただけ?
基本的にそうです。が、FireFoxに対応したり、あと通信関連やJavaScriptのメソッドの実行のためにインタプリタをいじったりもしてます。jsSchemeはほぼ「素のScheme」なので、アプリケーションを作るのに便利な関数を追加した、という感じです。- 結局これはネタなの?マジなの?
- うーん、マシンの高速化次第ではこういう未来もあり得るんじゃないかな、という感じです。デモはそれなりに実用的な速度で動いているし。ブラウザ上の言語がJavaScriptしかないよりは、いろいろあった方がきっと楽しいですよね。
- どういう人をターゲットにしているのでしょうか?
- とりあえず「Schemeを勉強したい」という人にとっては、世界一お手軽な処理系かも知れません。Schemeに慣れたら、なんか面白いもん作ってみてください。
- まだ未整備なところがいろいろありそうだけど、実用化を目指すの?
- 当面、僕がやらないといけないのは実用化することよりも修論を書くことのようです。(…研究室インターンでM1の人に何かアプリケーションを作ってもらうことになったんで、もうちょっと機能の整備は行われそうです。)
■ [ruby] map派とcollect派
昨日出たばかりのるびまより。Rubyにはmapとcollectという同じ機能をもつメソッドがあるんだけど、 どっちを使うのが好きか(読みやすいと思うか)という議論。
僕はmap派です。
というのに賛成(笑)。笹田 だって collect って全然 collect っぽくないじゃん。
でもどっちかというとmapも直感的じゃない気がしてて、 「配列の中身をある関数で変換する」という意味では「convert」とかそれっぽいかなぁと思うんですが。
[1,2,3].convert{|i| i*2}
どうでしょ?
WebSchemeですが、addEventListenerの三番目の引数をfalseにするとOperaでも動きます。
おお、ありがとうございます。<br>次のリリースでは修正しておきます。