On Wed 25 Jan 2012 01:26, Mark H Weaver <[email protected]> writes:
> Andy Wingo <[email protected]> writes:
>
>> (define-syntax-rule (define-const x val)
>> (begin
>> (define t val)
>> (define-syntax x (identifier-syntax t))))
>>
>> Here, `t' will have a fresh mark.
>>
>> Now, if in one compilation unit, I do:
>>
>> (define-const x 10)
>>
>> And in another, I do:
>>
>> (let ((t 20))
>> x) => ?
>>
>> You would expect the result to be 20. But I think it could be 20, if
>> the marks on the two "t"s happened to collide.
FWIW I think this example wasn't quite right; you'd need to have the
case where both "t"s that are visible have marks. Like in compilation
unit B:
(let ()
(define-const y 20)
x) => ?
Cheers,
Andy
--
http://wingolog.org/