[Cuis-dev] Some more Bag tweaks

Luciano Notarfrancesco luchiano at gmail.com
Fri May 13 15:11:16 PDT 2022


What do you mean by good random properties? It should be uniformly
distributed. Do you see any problem in Collection>>#atRandom: or
Bag>>#atRandom:?

Thanks!
Luciano

On Sat, 14 May 2022 at 4:57 AM Juan Vuletich <JuanVuletich at zoho.com> wrote:

> Anyone using #atRandom: on a non-sequenceable collection should be aware
> that no good random properties can be guaranteed, right?
>
> Anyway, just pushed to GitHub.
>
> Thanks,
>
>
> On 5/9/2022 7:56 AM, Luciano Notarfrancesco via Cuis-dev wrote:
>
> Juan, please don't forget to look at the changeset in my previous mail
> when you have time.
>
> 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:.
>
> 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:.
>
> Thanks,
> Luciano
>
> On Tue, May 3, 2022 at 7:54 AM Luciano Notarfrancesco <luchiano at gmail.com>
> wrote:
>
> Here are some more methods that take advantage of the structure of a Bag
> (#allSatisfy:, #anySatisfy:, #max:, #min:, #sum:, etc).
>
> 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:).
>
> All base image tests pass, but please review.
>
> Also, while running tests I got a walkback on BitBltCanvasEngine, see the
> attached log.
>
>
>
> --
> Juan Vuletichwww.cuis-smalltalk.orghttps://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Devhttps://github.com/jvuletichhttps://www.linkedin.com/in/juan-vuletich-75611b3https://independent.academia.edu/JuanVuletichhttps://www.researchgate.net/profile/Juan-Vuletichhttps://patents.justia.com/inventor/juan-manuel-vuletichhttps://twitter.com/JuanVuletich
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20220514/59a3236a/attachment.htm>


More information about the Cuis-dev mailing list