<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Hi all,</p>
<p><br>
</p>
<p>> <span style="font-size: 12pt;">If unwanted, do not use RunArray.</span></p>
<div><br>
</div>
<div>In general, to me, this seems not to be the best argument :)</div>
<div>I regard RunArray as a collection with optimized storage properties. I would definitely expect to work it analogously to a normal collection.</div>
<div>Just imagine something like SequenceableCollection >> #compressed which would convert the receiver to the subclass best matching the data set (even if it does not exist at the moment). In my opinion, RunArray should be an implementation detail.</div>
<div><br>
</div>
<div>> <span style="font-size: 12pt;">Having side effects in collect: slect: reject: blocks is more questionable.</span>
<div><br>
</div>
<div>Yes, it is questionabe, but with respect to the documentation comment, I tend to agree with Jakob ...</div>
<div><br>
</div>
<div>> <span style="font-size: 12pt;">Introduce a new selector for the optimized collect operation?</span>
<div><br>
</div>
<div>I also thought about this. Though, this would blow up the collection protocol even more ...</div>
<div><br>
</div>
<div>Best,</div>
<div>Christoph</div>
</div>
</div>
<p></p>
<div id="Signature">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<div name="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com><br>
<b>Gesendet:</b> Mittwoch, 1. Januar 2020 20:19:42<br>
<b>An:</b> The general-purpose Squeak developers list<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Collections-nice.869.mcz</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div dir="ltr">
<div>Hi Christoph,</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Le mer. 1 janv. 2020 à 19:48, Thiede, Christoph <<a href="mailto:Christoph.Thiede@student.hpi.uni-potsdam.de">Christoph.Thiede@student.hpi.uni-potsdam.de</a>> a écrit :<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div id="gmail-m_-8642330462686197063divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<div id="gmail-m_-8642330462686197063divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols" dir="ltr">
<p>Oops, Nabble rejected all my <raw>code</code> examples, sorry.</p>
<p><br>
</p>
<p>Was:</p>
<p></p>
</div>
<blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px">
<div style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols" dir="ltr">
<pre style="color:rgb(51,51,51)">i := 0.</pre>
</div>
<div style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols" dir="ltr">
<pre style="color:rgb(51,51,51)">((RunArray new: 4 withAll: 42) collect: [:x | i := i + 1]) asArray. "#(1 1 1 1)""</pre>
</div>
<div style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols" dir="ltr">
<span style="color:rgb(51,51,51);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13.44px">vs.</span></div>
<div style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols" dir="ltr">
<pre style="color:rgb(51,51,51)">i := 0.</pre>
</div>
<div style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols" dir="ltr">
<pre style="color:rgb(51,51,51)">(RunArray new: 4 withAll: 42) collect: [:x | i := i + 1] as: Array. "#(1 2 3 4)"</pre>
</div>
</blockquote>
<div style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols" dir="ltr">
<pre style="color:rgb(51,51,51)"></pre>
<div><br>
</div>
<div id="gmail-m_-8642330462686197063Signature">
<div id="gmail-m_-8642330462686197063divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<div name="divtagdefaultwrapper">
<div>
<div id="gmail-m_-8642330462686197063Item.MessagePartBody">Best,</div>
</div>
<div id="gmail-m_-8642330462686197063Item.MessagePartBody">Christoph</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Yes exactly, #collect: select: reject: replace: now have different behavior if we adopt those changes.</div>
<div>If unwanted, do not use RunArray.</div>
<div><br>
</div>
<div>Bag #collect: select: reject: could also behave like that.</div>
<div><br>
</div>
<div>Having side effects in do: blocks is OK.</div>
<div>Having side effects in collect: slect: reject: blocks is more questionable.</div>
<div>We use such side effects because we know that these methods are implemented with #do:, but it's not necessarily so.<br>
</div>
<div><br>
</div>
<div>I thought about #collect:as: and wondered if it should preserve iteration on each element or also act per run.</div>
<div>Since the intention is to transfer to another class, I think that element-wise loop is the least surprising.<br>
</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div id="gmail-m_-8642330462686197063divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<div style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols" dir="ltr">
<div id="gmail-m_-8642330462686197063Signature">
<div id="gmail-m_-8642330462686197063divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<div name="divtagdefaultwrapper"></div>
</div>
</div>
<br>
<div style="color:rgb(0,0,0)">
<div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_-8642330462686197063x_divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>Von:</b> Squeak-dev <<a href="mailto:squeak-dev-bounces@lists.squeakfoundation.org" target="_blank">squeak-dev-bounces@lists.squeakfoundation.org</a>>
 im Auftrag von Thiede, Christoph<br>
<b>Gesendet:</b> Mittwoch, 1. Januar 2020 19:52 Uhr<br>
<b>An:</b> <a href="mailto:squeak-dev@lists.squeakfoundation.org" target="_blank">
squeak-dev@lists.squeakfoundation.org</a><br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Collections-nice.869.mcz</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt">
<div>Great, thanks for the enhancement!<br>
<br>
Now we have got:<br>
<br>
<br>
vs.<br>
<br>
<br>
Would be great to align this. Is it necessary for RunArray >> do: to call<br>
aBlock once per index?<br>
<br>
</div>
</span></font></div>
</div>
</div>
</div>
</blockquote>
<div>I don't think so.</div>
<div>It's expected to have block with side effects for do:<br>
</div>
<div>We have (aRunArray values do:) or (aRunArray runsAndValuesDo:)</div>
<div><br>
</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div id="gmail-m_-8642330462686197063divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<div style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols" dir="ltr">
<div style="color:rgb(0,0,0)"><font size="2"><span style="font-size:10pt">
<div>Best,<br>
Christoph<br>
<br>
<br>
<br>
--<br>
Sent from: <a href="http://forum.world.st/Squeak-Dev-f45488.html" id="gmail-m_-8642330462686197063LPlnk689397" target="_blank">
http://forum.world.st/Squeak-Dev-f45488.html</a><br>
<br>
</div>
</span></font></div>
</div>
</div>
</div>
<br>
</blockquote>
</div>
</div>
</div>
</body>
</html>