[Gauche-devel-jp] 継続について質問

Back to archive index

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


継続の話が出ているのでついでに…

Gauche だと下のコードが (#<undef>) を出力するのですが、大丈夫でしょう
か? (STk や Guile 1.6 だと () になる)

(call-with-values
    (lambda ()
      (call-with-current-continuation
       (lambda (cont) (cont))))
  (lambda mv (display mv) (newline)))

これだと R5RS にある values の定義例

(define (values . things)
  (call-with-current-continuation
   (lambda (cont) (apply cont things))))

がうまく動かないと思うのですが。

さらについでですが、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

なんにせよ、call-with-values 以外のところに多値が出てきたときにどう動
作するかは、(確定したら)マニュアルに書いておいたほうがいいと思います。

-- 
木村 冬樹




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