I�� also like more the Hern��n proposal but I would prefer something like
stream nextPutAll: self name between: $( and: $)
To avoid creating an association
I like the solution of hernan better. I think that surrounding is a common pattern.
Stef
Le 25/7/15 22:02, Max Leske a ��crit :
On 25 Jul 2015, at 21:31, Sven Van Caekenberghe <sven@stfx.eu> wrote:I agree. I���ve never liked that operator. Apart from #// and #\\ there are pretty much no selectors that make you guess their meaning. The meaning is in all other cases transported through wording, which I feel very comfortable with. Yes, it���s convenient to write but, as Sven points out, I actually find it less readable. I like Hernan���s idea better.
On 25 Jul 2015, at 19:40, Esteban Lorenzano <estebanlm@gmail.com> wrote:Yes, indeed:
(From my vacations)
Doesn't this solves the problem?
stream << $( << name << $)
It is already there :)
String streamContents: [ :out |
�� out <<$( << 'test-' << 123 << $) ]
(But it is not perfect, there is still confusion there)
We are trying to reduce the String and Stream API, so any addition should be really important/significant.
Now I comeback to watch the see...
On 25 Jul 2015, at 18:39, Hern��n Morales Durand <hernan.morales@gmail.com> wrote:
In BioSmalltalk I use this pattern a lot:
�� �� aStream
�� �� �� �� nextPutAll: self name
�� �� �� �� between: $[ -> $].
so yes, that would be a nice inclusion for me :)
Cheers,
Hern��n
2015-07-24 17:48 GMT-03:00 stepharo <stepharo@free.fr>:
HI
while working on a lecture I saw that we have about 75 cases like:
�� �� �� �� �� �� aStream nextPut: $(.
�� �� �� �� �� �� �� �� ....
�� �� �� �� �� �� aStream nextPut: $).
�� �� storeOn: aStream
�� �� "Store a description of the elements of the complement rather than self."
�� �� �� �� aStream nextPut: $(.
�� �� �� �� absent storeOn: aStream.
�� �� �� �� aStream nextPut: $); space; nextPutAll: #complement.
printElementsOn: aStream
�� �� aStream nextPut: $(.
�� �� self size > 100
�� �� �� �� ifTrue: [aStream nextPutAll: 'size '.
�� �� �� �� �� �� self size printOn: aStream]
�� �� �� �� ifFalse: [self keysSortedSafely
�� �� �� �� �� �� �� �� do: [:key | aStream print: key;
�� �� �� �� �� �� �� �� �� �� �� �� ��nextPutAll: '->';
�� �� �� �� �� �� �� �� �� �� �� �� ��print: (self at: key);
�� �� �� �� �� �� �� �� �� �� �� �� ��space]].
�� �� aStream nextPut: $)
we have surroundedBy: aString
surroundedBy: aString
�� �� ^ self class streamContents: [ :s|
�� �� �� �� s nextPutAll: aString.
�� �� �� �� s nextPutAll: self.
�� �� �� �� s nextPutAll: aString ].
But only working on aString.
To me it looks like it ia class for having it on stream.
What do you think?