<div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="im">
</div>Continuing with this line, it seems that a better definition is as<br>
follows:<br>
<br>
  (define (string-split str [sep &quot; &quot;])<br>
    (remove* &#39;(&quot;&quot;) (regexp-split (regexp-quote (or sep &quot; &quot;)) str)))<br>
<br>
Except that the full definition could be a bit more efficient.<br>
<br>
Three questions:<br>
<br>
1. Laurent: Does this make more sense?<br></blockquote><div><br>Yes, this definitely makes more sense to me.<br>It would then treat (string-split &quot;aXXbXXXXy&quot; &quot;X&quot;) just like the &quot; &quot; case.<br>

<br>Although if you want to find the columns of a latex line like &quot;x &amp;&amp; y &amp; z&quot; you will have the wrong result.<br>Maybe use an optional argument to remove the empty strings? (not sure)<br> </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">



2. Matthew: Is there any reason to make the #f-as-default part of the<br>
   interface?  (Even with the new reply I don&#39;t see a necessity for<br>
   this -- if the target is newbies, then I think that keeping it as a<br>
   string is simpler...)<br></blockquote><div><br>There is probably no need for #f with the new spec.  <br><br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">



4. Related to Q3: what does &quot;xy&quot; as that argument mean exactly?<br>
   a. #rx&quot;[xy]&quot;<br>
   b. #rx&quot;[xy]+&quot;<br>
   c. #rx&quot;xy&quot;<br>
   d. #rx&quot;(?:xy)+&quot;<br></blockquote><div><br>Good question. d. would be the simplest case for newbies, but b. might be more useful.<br>I think several other languages avoid this issue by using only one character as the separator.<br>

</div></div><br>Laurent<br>