SYSTEM DEVELOPMENT

STUDY GROUP

ライブラリ

ライブラリ (library) とは、汎用性の高いプログラムを再利用可能な形でひとまとまりにしたもの。
例えば以下のような、整数 x の y 乗を求める関数があります。
function pow(x, y){
var result = x;
for (var i = 1; i < y; i++) {
result = result * x;
}
return result;
}
pow(2, 3);
8
x が 2 で y が 3 の時は、8 が値として返され、一見、問題がないように思います。
しかし、この実装には見落としがあります。例えば y が負の値だったらどうなるでしょうか?
pow(2, -1);
2

2 の -1 乗は、 本来ならば 0.5 になるはずの値がここでは、2 が返されてしまいます。
べき乗の計算においては、乗数に -1 が指定された場合には割り算をするという意味になります。ここでは、その意味が無視され -1 に乗数を設定しても、1 割る 2 の 0.5 ではなく、 間違った答えの 2 となってしまいます。
つまりこの実装では、y が自然数でなくては正しい答えがでないという制約があるのです。
JavaScript には、 Math という計算を行う関数を備えたオブジェクトがライブラリとして組み込まれています。
それを利用すると、
Math.pow(2, -1);
0.5

正しい値を計算することができます。
汎用的な処理を実装する際には、ライブラリが存在しないかを Google などの検索サイトで検索したり、誰かに聞いたりすることを癖にしていきましょう。

menu