Simple Science

最先端の科学をわかりやすく解説

「名前呼び」とはどういう意味ですか?

目次

呼び出し時評価(call-by-name)は、プログラミング言語での式の評価方法の一つだよ。このアプローチでは、プログラムは値が実際に必要になるまで式を評価しないんだ。つまり、値が使われなければ、計算すらされないってこと。

仕組み

呼び出し時評価を使うと、関数が呼ばれるたびに引数は事前に評価されずに渡されるよ。もし関数がその引数を使うなら、その時に評価される。引数が関数内で使われなければ、無駄な計算を防げるんだ。

利点

呼び出し時評価の主な利点は、時間とリソースを節約できること。もし式が複雑でいつも必要じゃないなら、その値を計算するのに無駄な労力を使わないからね。これで特定のケースではプログラムが速くて効率的になりうるんだ。

欠点

でも、呼び出し時評価には問題もあるよ。引数に副作用がある場合、つまり値を返すだけじゃなくて何かをする場合、その引数が関数内で複数回使われると、その副作用が何度も起こり得るんだ。これがプログラムの予期しない動作を引き起こすこともある。

値呼び出しとの比較

呼び出し時評価は、値呼び出し(call-by-value)としばしば対比されるよ。値呼び出しでは、引数は関数に渡される前に評価されるんだ。これはもっとシンプルだけど、使われない値のために余計な作業をする場合もあるんだよね。

名前呼び に関する最新の記事