<br><br><div class="gmail_quote">On Mon, Feb 21, 2011 at 9:37 PM, Levente Uzonyi <span dir="ltr">&lt;<a href="mailto:leves@elte.hu">leves@elte.hu</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">On Mon, 21 Feb 2011, Eliot Miranda wrote:<br>
<br></div>
snip<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Actually, thinking a little, why not<br>
<br>
<br>
Collection &gt;&gt; join: delimiter<br>
<br>
      ^self species streamContents: [ :stream |<br>
              self<br>
                      do: [ :each | each putOn: stream ]<br>
                      separatedBy: [ delimiter putOn: stream ] ]<br>
<br>
?<br>
</blockquote>
<br></div>
Because I&#39;d like this:<br>
#(&#39;foo&#39; &#39;bar&#39; &#39;baz&#39;) join: $-<br>
to return this:<br>
&#39;foo-bar-baz&#39;<br>
rather than this:<br>
#($f $o $o $- $b $a $r $- $b $a $z).<br></blockquote><div><br></div><div>So then why not</div><div><br></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">SequenceableCollection &gt;&gt; join: delimiter<br>
<br>       ^self isEmpty</span></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">           ifTrue: [ self ]</span></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">           ifFalse:</span></div>
<div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">                [ self first species streamContents:</span></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">                     [ :stream |<br>
                     self<br>                         do: [ :each | each putOn: stream ]<br>                         separatedBy: [ delimiter putOn: stream ] ] ]</span></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br>
</span></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">with first replaced by anyOne in Collection?</span></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<br>
Pharo&#39;s implementation dispatches on the class of the delimiter. That&#39;s fine, but requires multiple methods. Also I&#39;ve never used #join: to create anything else but Strings.<br>
<br>
<br>
Levente<br>
<br>
snip<br>
<br>
</blockquote></div><br>