Gaucheのコードリーディングをちょっと始めました。長いソースでも落ち着いて読めば読めるもんだなぁと思ってみた。
気付いたこと。
僕のSchemeとGaucheでは、設計上大きな違いがある事に気付いた。
vm.cより。
static void run_loop()
{
for (;;) {
}
}
何が違うって、
「再帰使ってない」
あぁ、再帰を反復にすればいいのね
って!!反復苦手・・・
ムニャムニャ
僕のSchemeの設計上の問題点は、「スタックを持ってない」ってところ。Cのスタックの中に、CのスタックとSchemeのスタックが混在した状態になってる。これはかなりの問題。
スタックを持ってないってことは・・・色々問題点があるように思う・・・えっと、アレだアレ。ムニャムニャ・・・
それにしてもvmってのがカッコイイ。反復でへこたれてる僕はスゲーカッコ悪い。しばらく修行に励みます。