Kazuki Ohta
mover****@hct*****
2005年 9月 4日 (日) 08:45:40 JST
太田です。 > * FUNCTYPE_EVALED_LIST > - 説明 > - map_evalして作ったリストをargsに渡し、envには現在の環境を渡す > - 関数宣言 > ScmObj func(ScmObj args, ScmObj env); map_evalの返り値をvectorにしたら良いんじゃないか?と思いました。 こうする事でcalleeの方も引数の数のチェックが簡単に出来るし、何より map_evalで生成される大量のconsセルが1個のベクターで済む様になります。 またScmObjInternalの圧縮をするとCARやCDRにもビット操作が一つ加わる ことになるので、 for (list = args; !NULLP(list); list = CDR(list)) hoge; より、 for (int i = 0; i < VECTOR_LEN(arg); i++) hoge; とやった方が、多少早くなると思います。どうでしょうかね、この方法? 変更がでかいのと、何か見落としている点がありそうなので投げてみました。 ------------------------------------------------- Kazuki Ohta : mover****@hct***** -------------------------------------------------