Collecting Smalltalk idioms
jwelton at pacific.mps.ohio-state.edu
Tue Aug 10 16:33:26 UTC 1999
Bob Arning wrote:
> On Tue, 10 Aug 1999 07:54:47 -0700 Stephen Pope <stp at create.ucsb.edu>
> >Another option is the ugly (but simple)
> > aCollection do:
> > [:each |
> > each printOn: aStream.
> > aStream nextPut: $,].
> > aStream skip: -1
> Except for the situation where the collection is empty. I posted a fix
> for just such code yesterday.
Hmm... What about this?
aCollection inject: #NoneYet into:
[:prev :each |
(prev == #NoneYet) ifFalse: [aStream nextPut: $,].
each printOn: aStream.
It's uglier, and less simple, and it doesn't work if #NoneYet makes
its way into aCollection, and I may have newbily screwed it up anyway,
but at least it was fun. And I think it works.
More information about the Squeak-dev