[Anthy-dev 2488] r5rs: 名前の整理

Back to archive index

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*****



Anthy-dev メーリングリストの案内
Back to archive index