アカウント名:
パスワード:
高級言語であれニモニックレベルであれ、分岐が少ないとエレガントに感じる。
必要な分岐を減らすことはできないはずなので、
・見かけ上、分岐ではないコードに置き換えているだけ・言語が持つ隠された分岐機能を使っている(そのぶん、複雑な仕様を持つ言語を使っている)
ということのなのでは?
あるいは、どんなふうに分岐を減らすのがエレガントなのでしょうか?
あまり良い例を思い付かないけど、例えばint16_t x; if (x > 100) s++;な場合に、s += uint16_t(100-x)>>15;みたいな感じで、『評価を計算式に組み込む』とか。#例に限定する突っ込みは禁止の方向でひとつ
他には、ある値に応じて、別の数を掛けたり足したり、或いは関数を呼びたい場合にテーブルを引くとか。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人
分岐が少ない (スコア:2)
高級言語であれニモニックレベルであれ、分岐が少ないとエレガントに感じる。
Re: (スコア:0)
必要な分岐を減らすことはできないはずなので、
・見かけ上、分岐ではないコードに置き換えているだけ
・言語が持つ隠された分岐機能を使っている(そのぶん、複雑な仕様を持つ言語を使っている)
ということのなのでは?
あるいは、どんなふうに分岐を減らすのがエレガントなのでしょうか?
Re:分岐が少ない (スコア:2)
あまり良い例を思い付かないけど、例えば
int16_t x; if (x > 100) s++;
な場合に、
s += uint16_t(100-x)>>15;
みたいな感じで、『評価を計算式に組み込む』とか。
#例に限定する突っ込みは禁止の方向でひとつ
他には、ある値に応じて、別の数を掛けたり足したり、或いは関数を呼びたい場合にテーブルを引くとか。