[racket] print-graph, DrRacket, and command-line REPL

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Wed Oct 13 22:27:25 EDT 2010

In the "use language declared in the source" language if I click the
show sharing checkbox in the details section of the language dialog
and run this program:

  #lang racket
  (define x (list 1))
  (list x x)

Then I see this output:

  '(#0=(1) #0#)

Were you doing something else?

(also I think that probably drracket should repect the print-graph
parameter is print mode, but I'm not sure)


On Wednesday, October 13, 2010, Neil Van Dyke <neil at neilvandyke.org> wrote:
> In 5.0.1, how do I make REPL printing in both DrRacket Interactions and the command-line REPL use the shared structure format?
> In DrRacket, I cannot seem to do this regardless of whether the "Show sharing in values" is true, and whether "Output Style" is "write" or "print".
>> (print-graph #t) ; just to show that this does not seem to affect the REPL
>> (define x (let ((tail '(tail))) `((a , at tail) (b , at tail))))
>> x
> ((a tail) (b tail))
>> (parameterize ((print-graph #t)) (format "~S" x))
> "((a . #0=(tail)) (b . #0#))"
> I want to see the shared structure format, since I have some library code that uses shared list tails heavily to save space and to shortcut some searches.
> I believe that PLT 3xx, at least, used shared structure format by default.
> --
> http://www.neilvandyke.org/
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/users

Posted on the users mailing list.