YamaKen
yamak****@bp*****
2005年 10月 3日 (月) 23:26:12 JST
ヤマケンです。 object compactionに向けた整理の一環としていくつかの名前を変更・ 廃止したいのでご意見お願いします。 SigSchemeのソースは初めてSchemeに触れる人の学習にも有用だと思う ので、誤解を招かないような名前を使っておきたいところです。私は SIODでSchemeを学びましたが、色々と変でわかりづらい部分があったよ うに思います。 * 改名 - ScmEtc, SCM_ETCP, ETCP これらは #t, #f, (), undef, eof 等の特別な定数にしか使われて ないので、素直に ScmConstant と CONSTANTP にしてしまった方が わかりやすいと思います。なお 'const' にしないのは 'cons' と 紛らわしいため。 - ScmObjInternal 長い、わかりにくい。さらに object compaction 後は対応する ScmObjInternal を持たない ScmObj も出てくるため、「内」と 「外」という概念に基づいて命名するのは避けた方がよいと思われ ます。 代わりに ScmCell のような名前にしてしまえば、伝統的な cons cell であり car slot と cdr slot を持つという特性、ScmObjと の関係及びインタプリタ内での扱われ方等を明確に示す事ができる と思います。どうでしょうか? - SCM_NFALSEP, NFALSEP これは "a true value" であるか判定する predicate ですが、 "not false" という余計な論理を1段挟む間接表記では本来の意図 が表せません(「偽でない」と「真である」は人間が解釈する層で は意味が違う)。かといって TRUEP にしてしまうと #t との同一性 判定と誤解されてしまいます。 そこで以下のように 'TRUE' を含む名前にしたいのですがどうでしょ う。ただしこの2つはいずれも最良ではないので、他に候補がなく 違和感があるなら当面 NFALSEP のまま保留しましょう。 * TRUEKINDP ('mankind' 様の 'truekind' という造語) * ATRUEP ("a true value?"の意) * 廃止 - SCM_NEQ, NEQ - SCM_NNULLP, NNULLP これらの代わりに !EQ や !NULLP が使われており、こちらの方がC 的にも意味が分かりやすいです。 ------------------------------- ヤマケン yamak****@bp*****