[Newbies] pretty printing

Bert Freudenberg bert at freudenbergs.de
Mon Sep 29 17:38:06 UTC 2008


Am 29.09.2008 um 10:07 schrieb Claus Kick:

> Bert Freudenberg wrote:
>
> > Guess I have to provide an alternative:
>> #('&' '&amp;' '<' '&lt;' '>' '&gt;' '''' '&apos;' '"' '&quot;')
>>    pairsDo: [:c :s| string := string copyReplaceAll: c with: s].
>
>> (this is the same approach as in String>>asHTML)
>
> Ok, to nitpick (;)) one message send less for each pair:
>
> #('&' '&amp;' '<' '&lt;' '>' '&gt;' '''' '&apos;' '"' '&quot;')
> pairsDo: [:c :s| string := string copyReplaceAll: c with: s  
> asTokens:false].

This is silly advice. Why would you willingly expose an implementation  
detail? There are many constructs that could be expanded but  
readability and portability is hurt by that.

> How do pairs compare to dictionaries in Squeak?

Well, there are no "pairs" per se but just an iteration method on  
sequenceable collections.

When iterating a Dictionary, the order is unpredictable. In my example  
it is vital to replace '&' first.

Also, Squeak does not have a literal syntax for dictionaries but for  
Arrays so my example is more efficient because the Array is  
constructed at compile-time.  OTOH, in real code one might put the  
dictionary into a class variable so this wouldn't matter.

- Bert -




More information about the Beginners mailing list