I thought this had shown up in a bug report before but I can't found it. Would you mind filing a report? Thanks.
On May 26, 2011, at 10:59 AM, Stephen Bloch wrote: > > On May 26, 2011, at 10:08 AM, Robby Findler wrote: > >> The #lang racket void is not the same thing as the void that comes out >> of (say) intermediate's assignments and definitions. I'm not sure what >> the intended behavior is but if you supply a small, complete example >> that would probably help someone figure out if you're seeing a bug in >> a printer or just the expected behavior. > > These are both pretty short. > > Here's the program in which "(void)" is NOT printed: > > ; In Definitions... > (define-struct my-posn (x y swapper formatter)) > > ; build-with-swapper-and-formatter : number number -> my-posn > (define (build-with-swapper-and-formatter xval yval) > (local [(define p1 > (make-my-posn xval yval > (lambda () > (local ((define temp (my-posn-x p1))) > (begin (set-my-posn-x! p1 (my-posn-y p1)) > (set-my-posn-y! p1 temp)))) > (lambda () > (format "(~a, ~a)" (my-posn-x p1) (my-posn-y > p1)))))] > p1)) > > ; In Interactions... > (define here (build-with-swapper-and-formatter 3 4)) > ((my-posn-formatter here)) > ; prints "(3, 4)" > ((my-posn-swapper here)) > ; doesn't print anything > ((my-posn-formatter here)) > ; prints "(4, 3)" > > > And here's the one in which it IS printed: > > ; In Definitions... > ; make-my-posn : number number -> (symbol -> number-or-string-or-nothing) > (define (make-my-posn xval yval) > (local [(define stored-x xval) > (define stored-y yval)] > (lambda (message) > (cond [(symbol=? message 'x) > stored-x] > [(symbol=? message 'y) > stored-y] > [(symbol=? message 'swap) > (local [(define temp stored-x)] > (begin (set! stored-x stored-y) > (set! stored-y temp)))] > [(symbol=? message 'format) > (format "(~a, ~a)" stored-x stored-y)] > [else > (error "Unrecognized message")])))) > > ; In Interactions... > (define here (make-my-posn 3 4)) > (here 'format) > ; prints "(3, 4)" > (here 'swap) > ; prints (void) > (here 'format) > ; prints "(4, 3)" > > > Both are in Advanced Student Language, DrRacket 5.1.1.5. > > > Stephen Bloch > [email protected] > > > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

