kiyokaのブログアーカイブ

Archive of old blog posts

srfiのポーティング(2)

私がRubyで書いているLisp方言、 [Nendo]について。

Olin Shiversさんのリファレンス実装のポーティングの続き。 call-with-current-continuation(継続)を使わない様に書きなおした。 ちゃんとソースコードを読んだら、call-with-current-continuationが使われている理由は、map系関数の高速化の為だった。 null-listが渡されたら、早めに処理を中断してムダな計算をしないようにするため。 そうと分かれば、書き換えは簡単。 しかし、テストスイートをどうやって用意するかが問題だ。 他の処理系から頂戴して来たいがライセンスとかがあるのでちょっと選別しないといけない。