<div dir="ltr">I&#39;ve had good luck porting simple Python examples to Racket. Perhaps you could start with the Python code that works as you expect, port it to Racket, then refactor it to more Rackety ways:<div><a href="http://hg.python.org/cpython/file/cc0e72082e52/Lib/json">http://hg.python.org/cpython/file/cc0e72082e52/Lib/json</a><br>

</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 16, 2013 at 1:54 PM, Eli Barzilay <span dir="ltr">&lt;<a href="mailto:eli@barzilay.org" target="_blank">eli@barzilay.org</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Just now, Nick Shelley wrote:<br>
&gt; In talking with an experienced Racketeer, I realized that<br>
&gt; pretty-print has a specific meaning in Racket that takes width into<br>
&gt; account.<br>
<br>
</div>That&#39;s exactly what I thought you were talking about.  Doing it from<br>
scratch seems wrong, and I thought that the right way to do it is to<br>
hook into the pretty-printer that we already have.<br>
<div class="im"><br>
<br>
&gt; What I really want is json with properly placed newlines and tabs<br>
&gt; (or spaces).<br>
<br>
</div>This sounds somewhere between very easy (if all you want is<br>
newlines+indentation up to a specific level) to something more<br>
complicated if you want to control other aspects like spaces around<br>
colons, sort keys in tables, etc.<br>
<div class="im"><br>
<br>
&gt; I&#39;m willing to take a stab at it if it doesn&#39;t exist. I just wanted<br>
&gt; to make sure I wasn&#39;t missing it somewhere (which happens often with<br>
&gt; me).<br>
<br>
</div>If you can summarize the python-equivalent features in a rackety way,<br>
I can see if it&#39;s easy to add them to our printer.<br>
<br>
IIUC, this interface means that `write-json&#39; would get a bunch of<br>
additional keywords, but I&#39;m not sure about it, since in Racket<br>
`write&#39; usually refers to something closer to serializing a value in a<br>
readable way rather than printing it in a readable way.  So maybe the<br>
right thing is to add a `print-json&#39; function even if it duplicates<br>
the functionality of `write-json&#39;.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:<br>
                    <a href="http://barzilay.org/" target="_blank">http://barzilay.org/</a>                   Maze is Life!<br>
____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</font></span></blockquote></div><br></div>