paint-brush
一級関数と高次関数を理解するby@Iggy
3,491
3,491

一級関数と高次関数を理解する

Ignatius Sani3m2022/11/13
Read on Terminal Reader
Read this story w/o Javascript

ファーストクラス関数とは、プログラミング言語またはプログラミング言語が持つ機能であり、別の関数を引数として受け取る関数です。高階関数の主な違いは、関数が実行後に呼び出された後に呼び出されることです。 Javascript では、Javascript 値を平均化する場合と同様に、関数を変数またはプロパティに格納できます。これにより、より柔軟なコードを書くための新しい方法が開かれます。関数を a に格納します。変数またはプロパティを追加します。
featured image - 一級関数と高次関数を理解する
Ignatius Sani HackerNoon profile picture


こんにちは、みんな!今日は、プログラミングで非常に有名な概念 (ファーストクラス関数) について説明します。このトピックに関するリソースはすでにたくさんありますが、この記事から得られる新しい情報がまだあるので、理解を深めるために時間をかけて単純化しました。


なぜこれが開発者として重要なのですか?

  • Javascript コールバック関数が使用されているのを見ると、Javascript コールバック関数をよりよく理解するのに役立ちます。
  • コードの動作を知るのに役立ちます。
  • Javascript が関数を値として扱う理由をよりよく理解できます。


ファーストクラス関数とは

ウィキペディアによると、関数を第一級市民として扱うプログラミング言語は、第一級関数を持つと言われています。


これは、言語が関数を引数として他の関数に渡したり、別の関数からの値として返したり、変数に割り当てたり、データ構造に格納したりすることをサポートしていることを意味します。


Javascript では、関数は別のタイプのオブジェクトであるため、このように機能します。この概念に慣れていない場合、特にプログラミングのバックグラウンドが異なる場合は、かなりぎこちなく感じるかもしれませんが、今のところ、それについて頭を悩ませてください。オブジェクトは値であるため、関数も同様であり、Javascript はそれらを 1 つとして扱います。これにより、関数を変数に格納したり、プロパティを追加したりできるため、より柔軟なコードを記述する新しい方法が開かれます。

簡単にするために、要点を箇条書きにまとめました。ファーストクラス関数をよりよく理解するために、いくつかのポイントを明確にします。


  • 引数として機能
  • 関数を返す関数
  • 値として機能

引数として機能

第一級関数で可能になることの 1 つは、関数を引数として渡すことです。このスタイルのコードは、多くの Javascript コードで見ることができます。たとえば、Javascript コールバック関数を引数として受け取る addEventListener メソッド。


 button.addEventListener('click', function(){ console.log('hellloooo') })


前のコード スニペットでは、addEventListener が 2 つの引数を受け取り、2 番目の関数がコールバック関数であり、ボタンがクリックされた後に呼び出されることがわかります。


関数を返す関数

Javascript の別の関数から関数を返すことができます。 Javascript の多くのオブジェクトには、javascript の配列関数などのメソッドがあります。また、関数のメソッドがあります。たとえば、 call()bind()apply() Javascript メソッドはすべて Javascript 関数で呼び出すことができます。


 function count(){ Let counter = 0; return function(){ counter++ } }


count 関数は、カウンターを更新する別の関数を返しました。


値として機能

Javascript では、Javascript 値を平均化する場合と同様に、関数を変数またはプロパティに格納できます。


 Const multiply = (a,b) => a * b


上記の Javascript アロー関数は、呼び出すことができる乗算変数に格納されます。

このように(3,5)を乗算します。


Javascript における第一級関数の重要性

ファーストクラス関数の主な意義の 1 つは、それによって高階関数を記述できるようになることです。



高階関数

これは、別の関数を引数として受け取る関数か、新しい関数を返す関数のいずれかです。これは、ファーストクラス関数があるからこそ可能です。


 button.addEventListener('click', function(){ console.log('hellloooo') })


ここでaddEventListener()は、別の関数を引数として受け取るため、高階関数の例です。 HOF が実行された後に呼び出されるため、Javascript コールバック関数を参照することがよくあります。高階関数と第一級関数の主な違いは、第一級関数はプログラミング言語にある機能またはない機能であり、単にすべての関数が値であることを意味します。


結論

結論として、実際にはファーストクラスの関数は存在しないことを知っておくことが不可欠です。それは単なる概念です。ただし、言語がファーストクラスの関数をサポートしているため、実際には可能な高階関数があります。