first-class functions
とはまだ混乱しています。私が正しく理解していれば、first-class functions
は1つの関数をオブジェクトとして使用する必要があります。これは正しいです?
これはfirst-class function
ですか?
def this_is_example(myarg1):
return myarg1
def this_is_another_ example(myarg):
return this_is_example(myarg)+myarg
this_is_another_ example(1)
ファーストクラスの関数は、特定の種類の関数ではありません。 Pythonのすべての関数はファーストクラスの関数です。関数が特定のプログラミング言語でファーストクラスであると言うことは、パススルーと操作と同じように、それらをパススルーして操作できることを意味します他の種類のオブジェクト(整数や文字列など)。関数を変数に割り当てたり、引数として別の関数に渡したりすることができます。区別は、個々の関数がファーストクラスであるかどうかではなく、言語全体が関数をファーストクラスのオブジェクトとして扱うかどうか。
「ファーストクラス関数」(FCF)は、いわゆる「ファーストクラス市民」(FCC)として扱われる関数です。プログラミング言語のFCCはオブジェクトです(ここでは「オブジェクト」という用語を自由に使用します)。
実際、veryおおざっぱに言えば、FCFは「関数」タイプの変数(または関数を指す変数)です。 「通常の」変数で実行できるすべてのことをそれらで実行できます。
これを知っていると、all関数は特定のプログラミング言語ではファーストクラスであるため、this_is_another_example(myarg)
とthis_is_example(myarg1)
はどちらもファーストクラス関数です。
いいえ、あなたは高次関数について話している- refer 。
ファーストクラス関数:関数を変数に割り当てるか、オブジェクト/変数として他の関数に渡すことができる場合、その関数はファーストクラス関数として呼び出されます。
Python、JavaScript、およびC(pointers)は、ファーストクラスの関数をサポートしています。
簡単な例(Pythonの場合):
def square(x): return x * x
def cube(x): return x * x * x
def print_result(x, func):
"""recieve a function and execute it and return result"""
return func(x)
do_square = square # assigning square function to a variable
do_cube = cube # assigning cube function to a variable
res = print_result(5, do_square) # passing function to another function
print res
res = print_result(5, do_cube)
print res
このプログラムは説明のためのものです。
Pythonのファーストクラス関数:
「ファーストクラス」の概念は、プログラミング言語の関数にのみ関係しています。ファーストクラスの関数とは、言語が関数を値として扱うことを意味します。つまり、関数を変数に割り当てたり、関数に渡したりすることができます。「ファーストクラスの関数」などの関数を参照する場合、めったに使用されません。 「ある言語はファーストクラスの関数をサポートしている/持っていない」と言う方がはるかに一般的です。したがって、「ファーストクラスの関数を持っている」は言語のプロパティです。
ファーストクラス関数のプロパティ:
したがって、関数型の値をサポートし、それらを非関数値と同じように扱う言語は、「ファーストクラス関数」を持つと言えます。
def pie(r):
def circleArea(d):
return r * (d ** 2)
return circleArea
c = pie(3.14)
print c(2)
上記は、Pythonのファーストクラス関数の例です。
Pythonのファーストクラス関数
言語の第一級オブジェクトは、全体を通して均一に処理されます。それらは、データ構造に格納されるか、引数として渡されるか、制御構造で使用されます。関数をファーストクラスのオブジェクトとして扱う場合、プログラミング言語はファーストクラスの関数をサポートすると言われています。 Pythonは、ファーストクラス関数の概念をサポートしています。
ファーストクラス関数のプロパティ:
関数はオブジェクト型のインスタンスです。
-関数を変数に格納できます。 -関数をパラメーターとして別の関数に渡すことができます。 -関数から関数を返すことができます。 -ハッシュテーブル、リストなどのデータ構造に保存できます。
Pythonのファーストクラス関数を示す例
1。関数はオブジェクトです:Python関数はファーストクラスオブジェクトです。以下の例では、関数を変数に割り当てています。この割り当てでは関数は呼び出されません。これは、shoutによって参照される関数オブジェクトを取得しますそれを指す2番目の名前を作成します。
# Python program to illustrate functions
# can be treated as objects
def shout(text):
return text.upper()
print shout('Hello')
yell = shout
print yell('Hello')
出力:
こんにちは
こんにちは
# Python program to illustrate functions
# can be passed as arguments to other functions
def shout(text):
return text.upper()
def whisper(text):
return text.lower()
def greet(func):
#storing the function in a variable
greeting = func("Hi, I am created by a function passed as an argument.")
print greeting
greet(shout)
greet(whisper)
出力:
こんにちは、私は引数として渡された関数によって作成されました。
こんにちは、私は引数として渡された関数によって作成されました。
#Python program to illustrate functions
#Functions can return another function
def create_adder(x):
def adder(y):
return x+y
return adder
add_15 = create_adder(15)
print add_15(10)
出力:
25
pythonのすべての関数は、他のオブジェクトと同じように渡すことができるため、最初のクラスです。