if A < B < C
# 本体
end
こんな条件式を書けたら素敵じゃない?
処理の流れは、
- Aを評価して(a)に保存する
- Bを評価して(b)に保存する
- (a) < (b) を評価してfalseなら終了
- Cを評価して(c)に保存する
- (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
0 件のコメント:
コメントを投稿