[Gauche-devel-jp] 多値のバグ?

Back to archive index

Kimura Fuyuki fuyuk****@hadal*****
2003年 2月 10日 (月) 12:34:12 JST


At Sun, 09 Feb 2003 17:03:46 -1000 (HST),
Shiro Kawai <shiro****@lava*****> wrote:
> 
> 今のところ、期待される数よりも多くの値が渡された場合、
> 大抵は最初の値だけが取られるようになっているんですが
> (CommonLisp的)、それを当てにしたコードが書かれると
> 他のSchemeとの互換性等の面でいろいろ問題もあるので、
> どうしようか、決めかねています。

個人的には Common Lisp 的動作で確定してくれることを希望。:)

> R5RS的には、期待されている値の数よりも少ない値や多い値を継続に
> 渡した場合の動作は未定義(unspecified)なので、
> 何が起こってもおかしくは無いわけですが。

そうですね。(define a (values 1 2)) の例でいえば、実装によって

1. a に 1 が入る
2. a に多値 1 and 2 が入る(でいいのかな)
3. エラーになる

の3通りの挙動を示すことにちょっと前に気づいて、あわてて R5RS を見直し
たらちゃんと未定義にされていたという…

-- 
木村 冬樹




Gauche-devel-jp メーリングリストの案内
Back to archive index