A new version of Collections was added to project The Inbox:
http://source.squeak.org/inbox/Collections-ct.908.mcz ==================== Summary ==================== Name: Collections-ct.908 Author: ct Time: 20 August 2020, 2:35:10.09764 pm UUID: b22d8a31-b3dd-ba49-924a-3f470da838c2 Ancestors: Collections-eem.907 Complements 60Deprecated-ct.80 (deprecation #doWithIndex: & Co.). =============== Diff against Collections-eem.907 =============== Item was removed: - ----- Method: HashedCollection>>doWithIndex: (in category 'enumerating') ----- - doWithIndex: aBlock2 - "Support Set enumeration with a counter, even though not ordered" - | index | - index := 0. - self do: [:item | aBlock2 value: item value: (index := index+1)]! Item was added: + ----- Method: HashedCollection>>withIndexDo: (in category 'enumerating') ----- + withIndexDo: elementAndIndexBlock + "Support Set enumeration with a counter, even though not ordered" + | index | + index := 0. + self do: [:item | elementAndIndexBlock value: item value: (index := index + 1)].! Item was removed: - ----- Method: SequenceableCollection>>collectWithIndex: (in category 'enumerating') ----- - collectWithIndex: elementAndIndexBlock - "Use the new version with consistent naming" - ^ self withIndexCollect: elementAndIndexBlock! Item was removed: - ----- Method: SequenceableCollection>>doWithIndex: (in category 'enumerating') ----- - doWithIndex: elementAndIndexBlock - "Use the new version with consistent naming" - ^ self withIndexDo: elementAndIndexBlock! Item was changed: ----- Method: String>>compressWithTable: (in category 'converting') ----- compressWithTable: tokens "Return a string with all substrings that occur in tokens replaced by a character with ascii code = 127 + token index. This will work best if tokens are sorted by size. Assumes this string contains no characters > 127, or that they are intentionally there and will not interfere with this process." | str null finalSize result ri c | null := Character null. str := self copyFrom: 1 to: self size. "Working string will get altered" finalSize := str size. + tokens withIndexDo: - tokens doWithIndex: [:token :tIndex | | start ts | start := 1. [(start := str findString: token startingAt: start) > 0] whileTrue: [ts := token size. ((start + ts) <= str size and: [(str at: start + ts) = $ and: [tIndex*2 <= 128]]) ifTrue: [ts := token size + 1. "include training blank" str at: start put: (Character value: tIndex*2 + 127)] ifFalse: [str at: start put: (Character value: tIndex + 127)]. str at: start put: (Character value: tIndex + 127). 1 to: ts-1 do: [:i | str at: start+i put: null]. finalSize := finalSize - (ts - 1). start := start + ts]]. result := String new: finalSize. ri := 0. 1 to: str size do: [:i | (c := str at: i) = null ifFalse: [result at: (ri := ri+1) put: c]]. ^ result! |
Free forum by Nabble | Edit this page |