タグ

algorithmとdelayに関するamayanのブックマーク (1)

  • 関数引数の遅延評価 - プログラミング言語 D (日本語訳)

    遅延評価とは、ある式を、その結果が当に必要になる時点までは 評価しないでおくテクニックです。 論理演算子 &&, || や三項演算子 ?: は、 従来からある遅延評価を行う手法です: void test(int* p) { if (p && p[0]) ... } 二番目の式 p[0] は p null でないときに限り評価されます。 もし仮に二番目の式が遅延評価されないとすると、 p が null のときには実行時エラーとなってしまうでしょう。 遅延評価演算子は実に有益なものではありますが、同時に、無視できない制限も存在します。 ログ取り関数を考えてみましょう。メッセージのログをとるもので、 グローバルな設定値によって実行時に ON/OFFを切り替えられるものとします: void log(char[] message) { if (logging) fwritefln(logfile,

  • 1