28

ファーストクラス関数とは何かについて、私はまだ混乱しています。私の理解が正しければ、ファーストクラス関数は 1 つの関数をオブジェクトとして使用する必要があります。これは正しいです?

これはファーストクラスの関数ですか?

def this_is_example(myarg1):
    return myarg1

def this_is_another_example(myarg):
    return this_is_example(myarg) + myarg

this_is_another_example(1)
4

8 に答える 8

4

Python のファーストクラス関数:

「一流」の概念は、プログラミング言語の関数にのみ関係があります。第一級関数とは、言語が関数を値として扱うことを意味します。つまり、関数を変数に代入したり、関数を渡したりすることができます。「第一級関数」などの関数を参照するときに使用されることはめったにありません。「言語はファーストクラスの関数をサポートしている/していない」と言う方がはるかに一般的です。つまり、「ファーストクラスの関数を持っている」ということは言語のプロパティです。

一級関数の性質:

  • 関数はオブジェクト型のインスタンスです。
  • 関数を変数に格納できます。
  • 関数をパラメーターとして別の関数に渡すことができます。
  • 関数から関数を返すことができます。
  • ハッシュテーブル、リストなどのデータ構造に保存できます。

したがって、関数型を持つ値をサポートし、それらを関数以外の値と同じように扱う言語は、「ファーストクラス関数」を持っていると言えます。

于 2019-10-26T06:23:37.153 に答える
0

Python のすべての関数は、他のオブジェクトと同じように渡すことができるため、ファースト クラスです。

于 2014-12-10T03:07:13.553 に答える