Gauche で Nested Set モデルを扱うためのコードを書いている際に、named let による再帰で木のノードを訪ねていく処理が出てきました。
そのコードを眺めているうちに Oleg Kiselyov 氏によって comp.lang.scheme に投稿されていた多値の意味合いについて述べた説明を思い出しました:
I believe there is a way to look at multiple values that might prove less confusing and disturbing. Multiple values is a computational _exception_. When the function 'values' is invoked with more or fewer than one argument, the function does not return at all. Rather, it throws an exception.
この説明を初めてみたときにはよく分かっていなかったのですが、改めて読んでみると多値と継続との関係がはっきり述べていて非常に納得できました。
また、R5RS の delay には多値を返す式を渡すことが想定されていないことにもようやく気づきました。