[squeak-dev] The Inbox: Collections-pre.838.mcz

Chris Muller asqueaker at gmail.com
Mon Jul 1 00:46:39 UTC 2019


Hi Patrick,

Would you be willing to employ the highest-level methods possible?   "order
do: [ .... ", creates an unnecessary dependency on the implementation when
it appears #associationsDo: would work fine..?

It looks like it would put a space before the last paren.  Picky, I know,
but there is #do:separatedBy: to the rescue.  I guess you could
pre-allocate the OrderedDictionary to the proper size.

For the RunArray, could #runsAndValuesDo: help here?  I'm having trouble
following this code.  At least in core code, #at:ifAbsentPut: should take a
block for the second argument, IMO.

Best,
  Chris









On Fri, Jun 28, 2019 at 5:11 AM <commits at source.squeak.org> wrote:

> Patrick Rein uploaded a new version of Collections to project The Inbox:
> http://source.squeak.org/inbox/Collections-pre.838.mcz
>
> ==================== Summary ====================
>
> Name: Collections-pre.838
> Author: pre
> Time: 28 June 2019, 12:11:16.302033 pm
> UUID: db29f1b2-09b5-f045-aa21-9379185664df
> Ancestors: Collections-pre.837
>
> Two method additions to Collection. The first adds ordered printing to
> OrderedDictionaries, to allow users to actually see the ordering. The
> second adds a method to convert a run array into an expanded version of the
> runs.
>
> =============== Diff against Collections-pre.837 ===============
>
> Item was added:
> + ----- Method: OrderedDictionary>>printElementsOn: (in category
> 'printing') -----
> + printElementsOn: aStream
> +       "Based on Dictionary>>#printElementsOn:"
> +
> +       aStream nextPut: $(.
> +       self size > 100
> +               ifTrue: [aStream nextPutAll: 'size '.
> +                       self size printOn: aStream]
> +               ifFalse: [order do: [:assoc | assoc ifNotNil: [
> +                                       assoc printOn: aStream. aStream
> space]]].
> +       aStream nextPut: $)!
>
> Item was added:
> + ----- Method: RunArray>>asValuesAndIntervals (in category 'converting')
> -----
> + asValuesAndIntervals
> +
> +       | interval result |
> +       result := OrderedDictionary new.
> +       1 to: self size do: [:i |
> +               (self at: i) do: [:value |
> +                       interval := result at: value ifAbsentPut: (i to:
> i).
> +                       result at: value put: (interval start to: i)]].
> +       ^ result
> +       !
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20190630/ddf82a03/attachment.html>


More information about the Squeak-dev mailing list