<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Anyone using #atRandom: on a non-sequenceable collection should be
aware that no good random properties can be guaranteed, right?<br>
<br>
Anyway, just pushed to GitHub.<br>
<br>
Thanks,<br>
<br>
On 5/9/2022 7:56 AM, Luciano Notarfrancesco via Cuis-dev wrote:
<blockquote
cite="mid:CAL5GDyq16KjiBTYD4bFFN2VvLtkdx72He3T5qn+UJpgTAep-AQ@mail.gmail.com"
type="cite">
<meta http-equiv="Context-Type" content="text/html; charset=UTF-8">
<div>Juan, please don't forget to look at the changeset in my
previous mail when you have time.
<div><br>
</div>
<div>Here are some additional tweaks. I reimplemented
Collection>>#identityIncludes: using #allSatisfy:
instead of #do:, in this way it is fast for Bags too, and it
mirrors the implementation of Collection>>#includes:.</div>
<div><br>
</div>
<div>I also implemented a fast Bag>>#atRandom:, and
implemented a general Collection>>#atRandom:. Originally
#atRandom: was not implemented in Collection, so I implemented
a generic version that only assumes the collection
understands #size and #do:.</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Luciano</div>
</div>
<br>
<div>
<div>On Tue, May 3, 2022 at 7:54 AM Luciano Notarfrancesco <<a
moz-do-not-send="true" href="mailto:luchiano@gmail.com">luchiano@gmail.com</a>>
wrote:<br>
</div>
<blockquote>
<div>Here are some more methods that take advantage of the
structure of a Bag (#allSatisfy:, #anySatisfy:, #max:,
#min:, #sum:, etc).
<div><br>
</div>
<div>Also made some tweaks to some methods in Collection to
call existing methods instead of reimplementing, in order
to simplify the changes in Bag (otherwise. for example,
I'd have to implement #sum, #sum: and #sum:ifEmpty: in Bag
instead of only implementing #sum:ifEmpty). And I changed
Collection>>#product to produce an error when the
collection is empty instead of returning 1 (to be
consistent with Collection>>#sum:).</div>
<div><br>
</div>
<div>All base image tests pass, but please review.
<div><br>
</div>
<div>Also, while running tests I got a walkback on
BitBltCanvasEngine, see the attached log.</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a>
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a>
<a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
<a class="moz-txt-link-freetext" href="https://independent.academia.edu/JuanVuletich">https://independent.academia.edu/JuanVuletich</a>
<a class="moz-txt-link-freetext" href="https://www.researchgate.net/profile/Juan-Vuletich">https://www.researchgate.net/profile/Juan-Vuletich</a>
<a class="moz-txt-link-freetext" href="https://patents.justia.com/inventor/juan-manuel-vuletich">https://patents.justia.com/inventor/juan-manuel-vuletich</a>
<a class="moz-txt-link-freetext" href="https://twitter.com/JuanVuletich">https://twitter.com/JuanVuletich</a></pre>
</body>
</html>