[squeak-dev] Review Request: Bag printString

christoph.thiede at student.hpi.uni-potsdam.de christoph.thiede at student.hpi.uni-potsdam.de
Sat Feb 26 19:49:48 UTC 2022


=============== Summary ===============

Change Set:        Bag printString
Date:            26 February 2022
Author:            Christoph Thiede

This changeset customizes the Bag printString to no longer emit every occurence of each element repeatedly.

Example:
    {10 @ 10. 10 @ 10. 20 @ 20. 20 @ 20. 20 @ 20. 30 @ 30. 30 @ 30. 40 @ 40} asBag. 'a Bag(10 at 10->2 20 at 20->3 30 at 30->2 40 at 40->1)'.

Thanks to Robert (rhi) for the hint!

=============== Diff ===============

Bag>>printElementsOn: {printing} · ct 2/26/2022 20:26
+ printElementsOn: aStream
+ 
+     contents printElementsOn: aStream.

BagTest>>testPrintString {tests} · ct 2/26/2022 20:25
+ testPrintString
+ 
+     | bag |
+     bag := Bag new.
+     bag add: '1' withOccurrences: 5.
+     bag add: '2' withOccurrences: 1.
+     bag add: '3' withOccurrences: 3.
+     
+     self assert: 'a Bag(''1''->5 ''2''->1 ''3''->3)' equals: bag printString.

Dictionary>>printElementsOn: {printing} · ct 2/26/2022 20:28 (changed)
printElementsOn: aStream 
    aStream nextPut: $(.
    self size > 100
        ifTrue: [aStream nextPutAll: 'size '.
            self size printOn: aStream]
        ifFalse: [self keysInOrder
                do: [:key | aStream print: key;
                         nextPutAll: '->';                
-                          print: (self at: key);
-                          space]].
+                          print: (self at: key)]
+                 separatedBy: [aStream space]].
    aStream nextPut: $)

---
Sent from Squeak Inbox Talk
["Bag printString.1.cs"]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220226/74dd8dbe/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Bag printString.1.cs
Type: application/octet-stream
Size: 1759 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220226/74dd8dbe/attachment.obj>


More information about the Squeak-dev mailing list