JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptの高階関数(HOC)を使って2つの数値の積を計算する方法

高階関数(HOC)とは?

JavaScriptにおける高階関数(Higher Order Function:HOC)とは、別の関数を引数として受け取ったり、戻り値として関数を返したりする(あるいはその両方を行う)特別な種類の関数のことです。クロージャと組み合わせることで、JavaScriptにおいて非常に強力なツールとなります。

この記事では、「2つの数値の積」を求めることができる高階関数を、JavaScriptで実際に実装する方法を解説します。

実装例

以下がそのサンプルコードです。

const num1 = 24;
const num2 = 5;
const productHOC = num1 => {
    return product = num2 => {
        return num1 * num2;
    };
};
console.log(productHOC(num1)(num2));

実行結果

コンソールには以下のように出力されます。

120

コードの解説

この例では、productHOC が最初の数値 num1 を引数として受け取り、内部でもうひとつの関数を返しています。返された関数は2つ目の数値 num2 を受け取り、num1 × num2 の結果を返します。

このように関数を段階的に呼び出す書き方は「カリー化」と呼ばれる手法で、クロージャのおかげで外側の変数 num1 の値が保持されるため、productHOC(24)(5) のような連続した呼び出しでも正しく計算結果(120)が得られます。高階関数とクロージャを理解すると、より柔軟で再利用性の高いコードが書けるようになります。

  1. JavaScriptで2つの数値を加算する際に必要な繰り上がり(キャリー)の回数を求める方法

    問題 2つの数値を受け取るJavaScriptの関数を記述する必要があります。 この関数は、まるで紙の上で筆算を行うように、その2つの数値を加算する際に発生する繰り上がり(キャリー)の回数を数えて返すものとします。 例えば、次の図のように 179 と 284 を足し合わせる場合、繰り上がりは2回発生します。したがって、この2つの数値を渡したとき、関数は 2 を返す必要があります。 解き方のポイント この問題は、各桁を下の位から順番に見ていき、「その桁の2つの数字と、前の桁からの繰り上がりの合計が10以上になったかどうか」を判定することで解けます。 剰余演算子(%)を使えば、数値の一番下の

  2. C++で「-」演算子のオーバーロードを使って2つの数値を加算する方法

    演算子オーバーロードは、C++における重要な概念の一つです。これはポリモーフィズム(多態性)の一種であり、演算子にユーザー定義の意味を持たせるためにオーバーロードする仕組みです。オーバーロードされた演算子は、ユーザー定義のデータ型に対して操作を実行するために使用されます。例えば、「+」演算子をオーバーロードすることで、整数型や文字列型(連結処理)など、さまざまなデータ型に対して加算を行うことができます。入力と出力入力10 20 20 30出力30 50処理の解説このプログラムでは、「-」演算子をオーバーロードして、2つの数値の加算を実現します。二項演算子は操作を実行するために1つのオブジェクト