JavaScript における関数合成

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、JavaScript における関数合成の概念を探ります。複数の関数を組み合わせて新しい関数を作成する方法と、compose() 関数を使用して右から左への関数合成を行う方法を学びます。実践的な例と演習を通じて、この強力な技術とそのプログラミングにおける実際の応用について、より深い理解を得ます。

これは Guided Lab です。学習と実践を支援するためのステップバイステップの指示を提供します。各ステップを完了し、実践的な経験を積むために、指示に注意深く従ってください。過去のデータによると、この 初級 レベルの実験の完了率は 100%です。学習者から 100% の好評価を得ています。

JavaScript で関数を合成する方法

JavaScript で関数合成を使ってコーディングを練習するには、ターミナル/SSH を開いて node と入力します。

以下は、JavaScript で右から左への関数合成を行う方法の例です。

  1. Array.prototype.reduce() を使って右から左への関数合成を行います。
  2. 最後の(最も右の)関数は 1 つ以上の引数を受け取ることができます。残りの関数は単項関数でなければなりません。
  3. 任意の数の関数を引数として取り、それらを合成する新しい関数を返す compose 関数を定義します。
  4. 必要な関数を必要な順序で compose 関数に渡します。
  5. 必要な引数を使って新しい合成関数を呼び出します。
const compose = (...fns) =>
  fns.reduce(
    (f, g) =>
      (...args) =>
        f(g(...args))
  );

たとえば、2 つの関数があるとしましょう。

const add5 = (x) => x + 5;
const multiply = (x, y) => x * y;

これらの関数を compose を使って合成することができます。

const multiplyAndAdd5 = compose(add5, multiply);

これで、必要な引数を使って multiplyAndAdd5 を呼び出すことができます。

multiplyAndAdd5(5, 2); // 15

まとめ

おめでとうございます!関数を合成する実験を完了しました。技術力を向上させるために、LabEx でさらに実験を行って練習してください。