Jun Inoue
jun.l****@gmail*****
2005年 8月 7日 (日) 20:53:43 JST
* sigscheme/eval.c - Make "and" and "or" properly tail-recursive. * sigscheme/sigschemetype.h - Add new function type. * sigscheme/read.c - Better treatment of "." (the dot) not followed by whitespace. and, or のために新しい ARGNUM_ enum を追加しました。Properly tail- recursive な form 全部(if, let, etc...)をこの型であらわすこともできます が、しんどいのでやめておきました。データ型を圧縮するときまで保留というこ とで。 # 前回の投稿のときには組込み系 (「組み込み系」が出ない…) を視野に入れて # ることを知りませんでした。すみません。前の投稿は無視してくださって結構です それから、(list a .b) のような入力の扱いはどうしましょう。(ソース参照) それともう一つ、ARGNUM_2N って何のためにあるんでしょう。見たところ四則演 算だけに使ってるようですが、代わりに ARGNUM_NotEval で登録して ScmOp_minus (ScmObj args) { int result = 0; while (!SCM_NULLP(args)) result -= SCM_INT_VALUE(SCM_CAR(args)); } みたいにした方がいいのでは? (中間生成物もでませんし)。対にして評価、とか いうのは各ルーチンの責任であって eval で面倒見るものでもないような気が。 -- Jun Inoue jun0****@users***** -------------- next part -------------- 文字コード指定の無い添付文書を保管しました... 名前: sscm-misc2.diff 下載