[r6rs-discuss] [Formal] proc in hash-table-update! should not mutate hash-table

Jed Davis r6rs at jdev.users.panix.com
Thu Feb 22 20:48:26 EST 2007


On Tue, Feb 20, 2007 at 08:16:13PM -0500, Daniel Villeneuve wrote:
[]
> PROPOSAL
> 
> Add "<proc> must not mutate the hash-table" as in the specification of map.

I hope that this would be a requirement on the program rather than the
implementation.

And then there are the continuation issues.  If <proc> returns more
than once, I assume that the effect is undefined.  If <proc> returns
exactly once, I assume that the prohibition on modification applies to
everything after the call and before the return, wherever in the dynamic
extent tree such may lie.  If <proc> does not return (e.g., if it raises
an exception that's caught outside the hash-table-update! call and not
continued), I hope that the hash table will remain mutable.

-- 
(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 mailing list