1. ホーム
  2. functional-programming

[解決済み] First Class FunctionとHigh Order Functionの違いについて

2022-05-17 16:46:34

質問

の違いは何ですか? ファーストクラス機能 高次機能 .

私はこの2つのWikiページを読みましたが、かなり似ていますね。 もし同じことを話しているのなら、なぜ2つの用語が必要なのでしょうか?

ググってみましたが、有用なものは見つかりませんでした。

どのように解決するのですか?

違いがあります。ある言語が一流関数を持っていると言う場合、その言語は関数を値として扱うということです。つまり、関数を変数に代入したり、それを渡したりすることができるということです。高階の関数は、他の関数に対して動作する関数です。つまり、1 つ以上の関数を引数として受け取り、関数を返すこともできます。

高階」の概念は、数学的な意味での関数のように、関数一般に適用することができます。第一級」の概念は、プログラミング言語における関数にのみ関係します。第一級の関数」というように、関数を指すときに使われることはあまりありません。それよりも「ある言語がファーストクラスの関数をサポートしている/していない」と言う方がずっと一般的です。

高階関数もサポートしない第一級関数を持つ言語や、逆に高階関数を持つが第一級関数をサポートしない言語を想像するのは難しいので、この2つは密接に関係している。