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

アーカイブの一覧に戻る

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


At Mon, 10 Feb 2003 08:56:28 +0900,
Kimura Fuyuki <fuyuk****@hadal*****> wrote:
> 
> さらについでですが、Gauche 0.6.7 では
> 
> gosh> (define a (values 1 2))
> a
> 2
> gosh> a
> 1
> 2
> 
> となるのですが(以前は1しか出なかった)、これは意図的なものでしょうか?
> 
> さらにつつくと妙なことになるのでバグっぽい気がするのですが。
> 
> gosh> (car a)
> *** ERROR: pair required, but got 1
> Stack Trace:
> _______________________________________
> gosh> a
> 1

やっぱり多値まわりがあやしいことになっているみたいですね。

gosh> d
#<generic describe (1)>
gosh> (d d)
#<generic describe (1)> is an instance of class <generic>
slots:
  name      : describe
  methods   : (#<method (describe <top>)>)
gosh> d
gosh> (d d)
#<generic describe (1)> is an instance of class <generic>
slots:
  name      : describe
  methods   : (#<method (describe <top>)>)

二度目に d したときに何も出力されていませんが、束縛自体は生きています。
で、define-method describe の最後の (values) を抜くとこの現象は直りま
す。

-- 
木村 冬樹




Gauche-devel-jp メーリングリストの案内
アーカイブの一覧に戻る