Always better with an example:<br><br>&gt; (with-input-from-string<br>      (with-output-to-string (ë() (write &#39;x) (write &#39;y)))<br>    (ë() (list (read) (read) (read))))<br>&#39;(xy #&lt;eof&gt; #&lt;eof&gt;)<br>&gt; (with-input-from-string<br>

      (with-output-to-string (ë() (write &#39;x) (write &quot; &quot;) (write &#39;y)))<br>    (ë() (list (read) (read) (read))))<br>&#39;(x &quot; &quot; y)<br>&gt; (with-input-from-string<br>      (with-output-to-string (ë() (write &#39;x) (display &quot; &quot;) (write &#39;y)))<br>

    (ë() (list (read) (read) (read))))<br>&#39;(x y #&lt;eof&gt;)<br><br>Laurent<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Nov 5, 2012 at 9:41 AM, Laurent <span dir="ltr">&lt;<a href="mailto:laurent.orseau@gmail.com" target="_blank">laurent.orseau@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br><div class="gmail_extra"><div><div class="h5"><br><br><div class="gmail_quote">On Fri, Nov 2, 2012 at 7:48 PM, Laurent <span dir="ltr">&lt;<a href="mailto:laurent.orseau@gmail.com" target="_blank">laurent.orseau@gmail.com</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="gmail_extra"><div class="gmail_quote"><div><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div>
</div>You&#39;re using just `write&#39;, so you need some whitespace between items:<br>
<br>
&gt; (with-input-from-string<br>
      (with-output-to-string (ë() (write &#39;x) (write &#39;y)))<br>
    read)<br>
&#39;xy<br></blockquote></div><div><br></div></div></div></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote">


<div><br>Wow, thanks a lot, I would have never thought about that. I thought that &#39;write&#39; was sending data, not mere characters.<br>Writing a space after each output indeed solves the problem.<br></div></div></div>


</blockquote><br></div></div></div>For reference, one needs to use (printf &quot; &quot;)  or (display &quot; &quot;) but not (write &quot; &quot;) or (print &quot; &quot;), because, IIUC, &#39;write&#39; does send data, but does not add delimiters to the data if there are none yet.<br>


I.e., a string like &quot; &quot; is self-delimited, a list (a b c) is also self-delimited, but symbols and numbers are not. This means that the delimiter must be added by hand.<br>&#39;display&#39; sends a space to the stream, whereas &#39;write&#39; sends a self-delimited data string &quot; &quot;.<span class="HOEnZb"><font color="#888888"><br>


<br>Laurent<br><br></font></span></div>
</blockquote></div><br></div>