Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

「高階関数」とは、何に対して、どれくらい高いのか?

More than 5 years have passed since last update.

英語では “higher-order function” だそうですが、これ、何が高いという意味なのでしょうか?

よく分かりません。そもそも日本語では、姓としての「高階さん」は居ても、独立して「高階」という語がありませんし。

お、言及がありますね。

All other functions are first-order functions.

higher-order function 以外の、「関数を引数に取らず、返すこともない関数」は “first-order function” だそうです。“lower” ではなく、“first” ですか。

ここでの “order” は、どうやら「序列」「階級」の意味で、「高階」は、「階級がより高い」「より上等な」の意味の訳語のようです。だったら、「高級関数」「上等関数」の方がありがたみがありますね。“first-order” は、階級を低い順に数えた際に一番目であるというのと同時に、「最初にあった」関数として、おおもとの「関数(function)」がレトロニムとして “first-order function” と呼ばれるようになった模様。ググると、“first-order function” には「一階関数」という訳語を用いている例もありますね。私としては初耳ですが。

まとめると、「高階関数」とは、従来の関数(一階関数)に比べて、より抽象化・汎用化されたことで、高度な(階級の高い)関数として、「高階関数(higher-order function)」と呼ばれたと。汎用度がより高いので、振る舞いの面から「汎関数」とも呼ばれます。

knaka
パソコンが好き。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away