(hash-ref a-hash a-key a-value) In the past a-value was required to be a procedure. Now it can be anything. Nice. Two caveats though. 1. If the value of a-value happens to be a procedure to be stored, it may unintentionally be called. 2. a-value may be an expresssion that takes much computation. This computation is repeated every time the hash-ref line is evaluated. Simply helped of course: I make it a habbit always to write or to have macros expand to: (hash-ref a-hash a-key (lambda () a-value)) In short, I do not well understand the reason to relax the contract of hash-ref and hash-ref!. Jos
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users