[Gauche-devel-jp] multiple values and first-classness

アーカイブの一覧に戻る

Kimura Fuyuki fuyuk****@hadal*****
2003年 2月 21日 (金) 09:35:17 JST


At Wed, 19 Feb 2003 00:33:06 -1000 (HST),
Shiro Kawai <shiro****@lava*****> wrote:
> 
> 「未初期化」は値でなく状態ですからねえ。
> なんでもfirst class valueなSchemeにはちと合わないかも
> しれません。symbol-bound? とかは一種反則。

そういう意味では多値は特殊な位置にあるんですよね。「多値を変数に代入で
きるか」「引数として渡せるか」といえば、(R5RS的には)保証されていないわ
けで。

Guileのように全部可能な実装もありますが、

(define mv (values (values 1 2) 3))
mv =>
#<values (1 2)>
3

私はちょっと気味悪く感じます。なんでかと考えてみると、どうやら私は多値
を境界に生じるあわいのようなものとしてとらえているみたいです。継続のよ
うな。でもSchemeは継続ですらfirst-class objectとして扱えるけったいな言
語なわけですから、Guileのような行きかたのほうが正しいのかもしれません。

というような議論は昔からおこなわれていたんですね…

http://zurich.ai.mit.edu/pipermail/rrrs-authors/1986-October/000598.html

-- 
木村 冬樹


ウンベルト・エーコ『完全言語の探究』
言語デザイナー必読の書 :p




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