2009年10月14日水曜日

不等号演算を論理積でつなげてみた

if A < B < C
# 本体
end
こんな条件式を書けたら素敵じゃない?

処理の流れは、
  1. Aを評価して(a)に保存する
  2. Bを評価して(b)に保存する
  3. (a) < (b) を評価してfalseなら終了
  4. Cを評価して(c)に保存する
  5. (b) < (c) を評価してtrueなら本体を実行
とする。

Rubyで書くとこんな感じ↓
a = A
b = B
if a < b
c = C
if b < c
# 本体
end
end

Bの評価を1回だけ行うところがミソ。
こんな風に書けたら便利だと思う。

ところで、

A < B < C
A < B <= C
A <= B < C
A <= B <= C
A > B > C
A > B >= C
A >= B > C
A >= B >= C

これらの組み合わせは、並び順が大小関係になっているので認識しやすいと思う。

一方、

A > B && B < C → A > B < C
A > B && B < C → A > B < C
A < B && B < C && C > D && D < E → A < B < C > D < E

こんなのもあったら便利かな?

2項演算子は左辺のオブジェクトのメソッド呼び出しだから、記述できても何ら不都合はないはず。
むしろHaskellのモナドみたいで面白いかもしれないね。

a = A
b = B
if a < b
c = C
if b < c
d = D
if c > d
e = E
d < e # 最後の条件判定の結果は使われていないのでif文を省略
end
end
end

2009年10月11日日曜日

Mac版 Google Chrome使ってみた

バージョンは4.0.221.8
いつもの散歩コースに出てみたけれど
バグっぽい挙動には出会わなかった。
YouTubeも表示できてるし、JSNESのドンキーコングも動かせた。

不満はMicrosoft Wireless Mouse 5000についている「戻る」と「進む」のボタンが使えないことぐらいかな。ショートカットキーは同じなのに、なぜ?

まぁ、もうしばらく使ってみよう。