[Anthy-dev 2803] r5rs: vector expression

Back to archive index

YamaKen yamak****@bp*****
2006年 1月 26日 (木) 18:21:32 JST


ヤマケンです。

以下のSigSchemeの仕様(正確にはデフォルトコンフィギュレーション)
を決定したいと思うので、意見を聞かせてください。

1. '#(0 1 2)形式のvectorにquoteを必須とするか
2. 1.のvectorをconst(immutable)にするか

これらはいずれもR5RSでそうしろと書かれていますが、以下のように
quote必須、constにはしないのをデフォルトにしたいと思います
(Biglooと同じ)。

#define SCM_STRICT_VECTOR_FORM  1  /* disallow quote-less vector literal */
#define SCM_CONST_VECTOR_LITERAL 0 /* parse vector literal as const */

まずquoteの方の理由ですが、以下の2点を確保してコード表現を一貫さ
せるためです。私のようにuimからSchemeに入って来る人もいると思う
ので、無用に混乱を招かないようにしておきたいです。

・quasiquoted vectorとの対称性 '#(foo bar) `#(baz ,sym quux)
・quoted listとの一貫性        (list '(foo bar) '#(baz quux))

constの方は利便性とlistとの一貫性のためです。R5RSでは '(a b c) 
もconstとして扱う事を要求しているんですが、これはstorage-compact 
ではそもそもビットが足りず実現できないし、書き換え可能listを全て
list procedureやlist-copy等で生成するのは繁雑すぎます。vectorも
同様。

-------------------------------
ヤマケン yamak****@bp*****



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