[squeak-dev] The Trunk: Collections-eem.369.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Jul 18 00:09:38 UTC 2010


Eliot Miranda uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-eem.369.mcz

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

Name: Collections-eem.369
Author: eem
Time: 17 July 2010, 5:09:14.555 pm
UUID: d00ce3cb-ed13-4fb6-8494-4ecd067c4f1d
Ancestors: Collections-ar.368

Collection>>fold: and SequenceableCollection>>copyUpThrough:, extensions used by Cog VMMaker.
Change to older semantics of Character>>hex for Cog VMMaker.

=============== Diff against Collections-ar.368 ===============

Item was added:
+ ----- Method: Collection>>fold: (in category 'enumerating') -----
+ fold: binaryBlock
+ 	"Evaluate the block with the first two elements of the receiver,
+ 	 then with the result of the first evaluation and the next element,
+ 	 and so on.  Answer the result of the final evaluation. If the receiver
+ 	 is empty, raise an error. If the receiver has a single element, answer
+ 	 that element."
+ 	"#('if' 'it' 'is' 'to' 'be' 'it' 'is' 'up' 'to' 'me') fold: [:a :b | a, ' ', b]"
+ 
+ 	| firstValue nextValue |
+ 	firstValue := nextValue := Object new. "something that can't be in the receiver"
+ 	self do:
+ 		[:each |
+ 		nextValue := firstValue == nextValue
+ 						ifTrue: [each]
+ 						ifFalse: [binaryBlock value: nextValue value: each]].
+ 	^nextValue == firstValue
+ 		ifTrue: [self errorEmptyCollection]
+ 		ifFalse: [nextValue]!

Item was changed:
  ----- Method: Character>>hex (in category 'printing') -----
  hex
+ 	^value printStringBase: 16!
- 	^value hex!

Item was added:
+ ----- Method: SequenceableCollection>>copyUpThrough: (in category 'copying') -----
+ copyUpThrough: anElement 
+ 	"Answer all elements up to and including anObject. If there
+ 	is no such object, answer a copy of the receiver."
+ 
+ 	^self first: (self indexOf: anElement ifAbsent: [^ self copy])!




More information about the Squeak-dev mailing list