Kazuki Ohta
mover****@hct*****
2005年 8月 18日 (木) 19:19:08 JST
太田です。 > 多値が無いのに気づいたので適当に実装してみました。「多値型」を作ってしま > って 0 or ≧ 2 個の値をその型のオブジェクトに綴じ込むやり方です。パッチ > では enum ScmObjType に ScmValuePacket 型を追加していますが、R5RS を読む > 限りでは「car が特定の (入力できない) オブジェクトと eq? である pair > を多値型とする」とかやっても (それが R5RS の範囲内で表面化しないなら) い > いっぽいですね。それが「良い」実装かどうかは別として。どうしても typeid > space を節約したくなったら、それで実装するとか、etc 型の空いてるワードを > ポインタにして多値を etc 型にするとか… > > でも、そもそも多値を完璧に理解してる自信が無いんですが、どんなもんで > しょ? これでいいんなら receive も実装します。 またまた素晴らしいパッチを有難う御座います。多値はuim-shを動かしたら実装しようと思 っていたのですが、井上さんに先に越されてしまいました(笑)本当助かります。 僕も完璧に多値のセマンティクスを理解していないのですが、とりあえずtest caseが通るよ うならそれで良いのでは無いでしょうか。昨日辺りに他の処理系から実験的にtest caseを 持ってくる実験を行ったので、多値に関するモノも持ってくる事にします。それが通る事を確 認したらcommitします。 > ;; ところで kzk さんの FUNCTYPE に関する提案に私は全面的に賛成です。 > ;; スレを見てる人が少ないのか、なんか反応がありませんが… 色々考えている内にもう少し色々な型が欲しくなって参りまして... ScmObj ScmOp_quote(ScmObj obj) の様に、quoteにはenvが付かないようにしたいのですよね。逆にdefineではenvが必須です し。なのでUNEVALED_ARGをまた分割するかもしれません。しかし、こうしているとキリが無 いので、おとなしく歴史に従った方が良いのかも... -- ------------------------------------------------- Kazuki Ohta : mover****@hct***** -------------------------------------------------