<div dir="ltr"><div>Then what does #, exactly if not traversing the String from the beginning when making a concatenated copy?<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/4/27 Frank Shearar <span dir="ltr">&lt;<a href="mailto:frank.shearar@gmail.com" target="_blank">frank.shearar@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In Schlemiel&#39;s algorithm you have to traverse your string from the<br>
beginning. Here, the problem is that at every step you&#39;re making<br>
String after String after String that you just throw away.<br>
<br>
Unless perhaps you&#39;re suggesting that the Schlemielness comes from not<br>
doing things the way our particular garbage collector like to do<br>
things?<br>
<br>
frank<br>
<br>
On 27 April 2013 22:08, Nicolas Cellier<br>
<div class="HOEnZb"><div class="h5">&lt;<a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>&gt; wrote:<br>
&gt; <a href="http://en.wikipedia.org/wiki/Schlemiel_the_Painter%27s_algorithm" target="_blank">http://en.wikipedia.org/wiki/Schlemiel_the_Painter%27s_algorithm</a><br>
&gt;<br>
&gt;<br>
&gt; 2013/4/27 &lt;<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>&gt;<br>
&gt;<br>
&gt;&gt; Levente Uzonyi uploaded a new version of Tests to project The Trunk:<br>
&gt;&gt; <a href="http://source.squeak.org/trunk/Tests-ul.200.mcz" target="_blank">http://source.squeak.org/trunk/Tests-ul.200.mcz</a><br>
&gt;&gt;<br>
&gt;&gt; ==================== Summary ====================<br>
&gt;&gt;<br>
&gt;&gt; Name: Tests-ul.200<br>
&gt;&gt; Author: ul<br>
&gt;&gt; Time: 27 April 2013, 10:08:43.206 pm<br>
&gt;&gt; UUID: dfe70287-0768-42f9-97b7-d7ba6fbd6bb6<br>
&gt;&gt; Ancestors: Tests-fbs.199<br>
&gt;&gt;<br>
&gt;&gt; - avoid suboptimal string concatentation in ReleaseTest &gt;&gt;<br>
&gt;&gt; #testMethodsWithUnboundGlobals<br>
&gt;&gt;<br>
&gt;&gt; =============== Diff against Tests-fbs.199 ===============<br>
&gt;&gt;<br>
&gt;&gt; Item was changed:<br>
&gt;&gt;   ----- Method: ReleaseTest&gt;&gt;testMethodsWithUnboundGlobals (in category<br>
&gt;&gt; &#39;testing&#39;) -----<br>
&gt;&gt;   testMethodsWithUnboundGlobals<br>
&gt;&gt;         | unbound |<br>
&gt;&gt;         unbound := SystemNavigation default methodsWithUnboundGlobals.<br>
&gt;&gt;         Smalltalk cleanOutUndeclared.<br>
&gt;&gt; +       self assert: unbound isEmpty description: &#39;Unbound: &#39;, unbound<br>
&gt;&gt; asCommaString!<br>
&gt;&gt; -       self assert: unbound isEmpty description: (&#39;Unbound: &#39;, (unbound<br>
&gt;&gt; reduce: [:acc :each | acc, &#39;, &#39;, each]))!<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>