Smalltalk(Pharo) である桁ごとにコンマ区切りにする


 ふと思い立ってある桁(以下の場合は3桁)ごとにコンマ区切りにするコードを書いてみました。
 もっとスマートにやるというか、そのものズバリの何かがあるような気がするのですが…。

 (追記)コメントにある通り Integer >> printSeparatedBy: every: signed: base: on: がそのものズバリのようです。やっぱり、ありそうなものはあるものですね。

|n stream|
n := 1.
stream := WriteStream with: ''.
1000000 asString reverse do: [:s | stream << s.
    (n = 3) ifTrue: [
        stream << ','.
        n := 1.
        ]
    ifFalse: [
        n := n + 1
        ].
    ].

Transcript show: stream contents reverse; cr.