The `!!hi.1` symbol is an "unreadable" symbol generated by macro expansion (to avoid capturing any other identifier in a source program). You can detect such weird symbols with `symbol-unreadable?`.
At Fri, 20 Dec 2013 20:14:30 -0200, Gustavo Massaccesi wrote: > I'm not sure that this is a bug. I found this while using > define-namespace-anchor. > > When I run this program I get an unexpected !!hi.1 symbol in the list > of namespace-mapped-symbols. (All the variable names begin with !! so > they are easy to sort in the list.) > > The variable !!hi is defined inside a macro, so I expect that it > should not be visible from the module namespace. And I can't use > namespace-variable-value to get the value of !!hi.1 . Also, if I > define a "real" !!hi.1 outside the macro, then there are two !!hi.1 > symbols in the list. > > Gustavo > > ;----- > #lang racket > > (define-syntax-rule (define-hi) > (define !!hi #f)) > > (define-hi) > > (define !!tmp #f) > (define !!ns (variable-reference->namespace (#%variable-reference !!tmp))) > > (define (symbol<? x y) > (string<? (symbol->string x) (symbol->string y))) > > (take (sort (namespace-mapped-symbols !!ns) symbol<?) 5) > ;==> '(!!hi.1 !!ns !!tmp #%app #%datum) > > ;;;(define !!hi.1 #t) > ;----- > ____________________ > Racket Users list: > http://lists.racket-lang.org/users ____________________ Racket Users list: http://lists.racket-lang.org/users

