2006/12/25 19:08:00http://www.kmonos.net/wlog/65.html#_1433060921
- 実際にprintされるまでは名前文字列を作らないように遅延させると gensym が25倍高速化。
- 継続やClosureを取る際には、 スタックを単純コピーすると書き換わる変数の共有ができないので、 関数フレームもすべてヒープに置いてGCに任せる…というのがよくあるアプローチ。 だが、これは遅い。(例えmallocがスタックポインタの加算と同じ程度に速くとも、 ポインタのチェインを作る手間の分遅い。)むしろ、set! され得る変数だけを特別にスタック上にはポインタで保持することで、 スタック単純コピーで済むようにした。
- 関数とその他の名前空間が分かれてるLispだと、関数じゃない値を call したときのエラートラップが簡単なのだけど、Scheme はそうなっていない。 でも、名前空間が分かれてる場合の手法を応用できた。
- Don't forget about machine generated codes.
- Must not accept partially correct solutions.
2006/12/19 14:30:00「今日の一行」に書くまでもないネタなのでこちらに。
1日を2倍に使うには、
昼寝する→起きる
これで新しい日の始まり! (石を投げないでください)
2006/12/07 15:03:00http://pc8.2ch.net/test/read.cgi/tech/1158259643/
ものすごく“痒い”スレです。(隔靴掻痒感というか何というか...)
|