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 以外のところに多値が出てきたときにどう動 作するかは、(確定したら)マニュアルに書いておいたほうがいいと思います。 -- 木村 冬樹