<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div><div>;; language: ISL+</div><div>;; teachpack:&nbsp;</div><div>(require 2htdp/batch-io)</div><div><br></div><div>;; Nat -&gt; String&nbsp;</div><div>(define (create-product n)</div><div>&nbsp; (local ((define (inner i)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (cond</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [(= i 0) "(* 11\n"]</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [(&lt; i (- n 1)) (string-append " &nbsp; " (number-&gt;string (* (+ i 1) 11)) "\n")]</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [else &nbsp; &nbsp;" &nbsp; 55)\n"])))</div><div>&nbsp; &nbsp; (apply string-append (build-list n inner))))</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>(define _dummy (write-file 'standard-out (create-product 5)))</div></div><div><br></div><br><div><div>On Feb 17, 2013, at 8:14 PM, Robby Findler wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">I don't know if it is appropriate in your setting, but you could use the racket/pretty library (where you can specify a column width and it will make an attempt to use that width).<div><br></div><div>Or, if these are values printing in DrRacket, then you can change the width of the window before they are returned in the REPL and that will control how wide they are printed. It may help to use the horizontal mode (the "View" menu's "Use Horizontal Layout" menu item).</div>
<div><br></div><div style="">Robby</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Feb 17, 2013 at 4:43 PM, Mitchell Wand <span dir="ltr">&lt;<a href="mailto:wand@ccs.neu.edu" target="_blank">wand@ccs.neu.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Is there a good way to create multi-line strings in ISL? &nbsp;For example, instead of producing output in the form<div>
<br></div><div><div><font face="courier new, monospace">(list</font></div><div><font face="courier new, monospace">&nbsp;"(* 11 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "</font></div>

<div><font face="courier new, monospace">&nbsp;" &nbsp; 22 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "</font></div><div><font face="courier new, monospace">&nbsp;" &nbsp; 33 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "</font></div>

<div><font face="courier new, monospace">&nbsp;" &nbsp; 44 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "</font></div><div><font face="courier new, monospace">&nbsp;" &nbsp; 55) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;")</font></div>

</div><div><font face="courier new, monospace"><br></font></div><div><font face="arial, helvetica, sans-serif">[where here I've padded the strings out to 80 characters to force the Racket printer to produce each string on a separate line.]</font></div>

<div><br></div><div>I'd like to have a program that produced the output</div><div><br></div><div><span style="font-family:'courier new',monospace">(* 11</span><br></div><div><font face="courier new, monospace">&nbsp; &nbsp;22</font></div>

<div><font face="courier new, monospace">&nbsp; &nbsp;33</font></div><div><font face="courier new, monospace">&nbsp; &nbsp;44</font></div><div><font face="courier new, monospace">&nbsp; &nbsp;55)</font></div><div><font face="courier new, monospace"><br>

</font></div><div><font face="arial, helvetica, sans-serif">preferably without quotations. &nbsp;When I put things like #\n #\newline or #\r in the middle of a string, ISL prints them out like #\n, #\newline, or #\r.</font></div>

<div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">Any ideas? &nbsp;What have I overlooked?</font></div><div><font face="arial, helvetica, sans-serif"><br>
</font></div><div><font face="arial, helvetica, sans-serif">--Mitch</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><br></div></div>
<br>____________________<br>
&nbsp; Racket Users list:<br>
&nbsp; <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br></blockquote></div><br></div>
____________________<br> &nbsp;Racket Users list:<br> &nbsp;<a href="http://lists.racket-lang.org/users">http://lists.racket-lang.org/users</a><br></blockquote></div><br></body></html>