僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
fizzbuzzの冗長性は、あまりましにならなかったというか。
1 to: 100 do: [: x | (x \\ 3 == 0) & (x \\ 5 ~= 0) ifTrue: [Transcript show: 'fizz'; cr] . (x \\ 5) == 0 & (x \\ 3 ~= 0) ifTrue: [Transcript show: 'buzz'; cr] . (x \\ 3 == 0) & (x \\ 5 == 0) ifTrue: [Transcript show: 'fizzbuzz'; cr] . (x \\ 3 ~= 0) & (x \\ 5 ~= 0) ifTrue: [Transcript show: x printString; cr] . ]
やや複雑らしく、書きかけで動作確認していたら、77を出力した後、"fizz"を出力する前に、
77
"Global garbage collection... done"
fizz
と標準エラー出力が。完成するとばったり出なくなったけど。
それから、"!=" に当たりそうな演算子、じゃなくてメッセージは、"~=" らしい。
st> 3 ~= 4 true st> 3 == 4 false
fbarray := Array new: 100 1 to: 100 do: [: x | (x \\ 3) == 0 ifTrue: [fbarray at: x put: 'fizz']. (x \\ 5) == 0 ifTrue: [fbarray at: x put: 'buzz']. (x \\ 15) == 0 ifTrue: [fbarray at: x put: 'fizzbuzz']. (fbarray at: x) isNil ifTrue: [Transcript show: x printString; cr] ifFalse: [Transcript show: (fbarray at: x); cr] ]
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。