[Anthy-dev 2236] r5rs: 多値

Back to archive index

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


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