トップ «前の日記(2012-12-04(Tue)) 最新 次の日記(2012-12-06(Thu))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2012-12-05(Wed) 暗くて天気が分からない

どうにか一回のループで済んだ。けど

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] 
  ]

and, or

以前に書いたことと重なるような、重ならないような。

st> false & true
false
st> false & false
false
st> true & false
false
st> true & true
true
 
st> true | false
true
st> false | true
true
st> false | false
false
st> true | true
true

リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。