[r6rs-discuss] [Formal] multiple values and tail contexts
r6rs at jdev.users.panix.com
Sat Jun 23 03:48:37 EDT 2007
On Sat, Jun 16, 2007 at 05:06:35PM +0200, Michael Sperber wrote:
> Jed Davis <r6rs at jdev.users.panix.com> writes:
> > The definition of "values" claims to specify exactly those
> > continuations which may accept other than one argument, and -- for
> > example -- those in which the <consequent> and <alternate> of an "if"
> > form (section 9.5.3) are evaluated are not among them;
> `if' doesn't create new continuations for <consequent> and <alternate>.
Of course it shouldn't; that's obvious. But where is it normatively
proclaimed that I can't, and (if it is) why have I not found such or a
pointer to it in any of the obvious and semi-obvious places?
Certainly there is a stricture against increasing the space (or other
finite resource) consumed by the continuation chain, but this does
not prevent other alterations.
The point about pointers is worth expanding: a not uncommon use case
of documents like RnRS (or the IETF RFCs) is to go in and read an
individual section to clarify one's understanding of some specific
detail. It seems desirable in general to reduce the chance of actively
misleading such a user.
(let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map
((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l)))))) (lambda
(f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l))
(C k))))))) '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline)))))
More information about the r6rs-discuss