Python で関数型プログラミング スタイルを使用する方法、具体的なコード例が必要です
Python は広く使用されているプログラミング言語です。他のプログラミング言語と比較して、Python は簡潔です。 、柔軟で読みやすい。一般的なオブジェクト指向プログラミング (OOP) スタイルに加えて、Python は関数型プログラミング (FP) スタイルもサポートしています。関数型プログラミングでは、純粋な関数を使用してコードを記述し、共有状態を回避することに重点が置かれており、このスタイルは、大量のデータの処理、並列計算、および関数の合成に非常に有利です。この記事では、Python で関数型プログラミング スタイルを使用する方法と、具体的なコード例を紹介します。
1. 純粋関数
純粋関数は、関数型プログラミングの中核概念の 1 つです。純粋関数とは、特定の入力と特定の出力を持ち、副作用を生成しない関数です。言い換えれば、純粋関数の結果は入力パラメーターのみに依存し、外部状態には依存しません。以下に例を示します。
def add(x, y): return x + y
この関数は、入力パラメーター x と y にのみ依存し、外部変数の状態を変更しないため、純粋な関数です。 add 関数が呼び出されるたびに、その戻り値は同じになると信頼できます。
2. 高階関数
高階関数とは、1 つ以上の関数をパラメータとして受け取る関数、および/または関数を返す関数を指します。高階関数は Python で簡単に定義できます。以下に例を示します。
def apply_twice(func, arg): return func(func(arg)) def square(x): return x * x result = apply_twice(square, 3) print(result) # 输出 81
この例では、apply_twice
関数は関数 func
と引数 arg
を受け入れます。まず arg
をパラメータとして func
に渡し、次に func
の戻り値をパラメータとして再度 func
に渡します。このようにして、関数の複数のアプリケーションを簡単に実装できます。
3. 匿名関数
匿名関数は、Lambda 関数とも呼ばれ、名前のない関数を指します。 Python には、匿名関数を定義するためのラムダ式が用意されています。以下に例を示します。
power = lambda x, n: x**n result = power(2, 3) print(result) # 输出 8
この例では、power
関数は、2 つのパラメータ x
と n
を受け入れる小さな匿名関数であり、戻り値を返します。 #xxx の
n 乗。匿名関数を使用すると、いくつかの単純な関数をより簡潔に定義できます。
compose 関数が用意されています。以下に例を示します。
def compose(f, g): return lambda x: f(g(x)) def add_one(x): return x + 1 def square(x): return x * x combined_function = compose(square, add_one) result = combined_function(3) print(result) # 输出 16
compose 関数は 2 つの関数
f と
g を受け入れ、新しい関数 This を返します。 new 関数は、最初に
g 関数を適用し、次にその結果を
f 関数に適用します。このようにして、関数を組み合わせて、より複雑な関数を得ることができます。
filter 関数と
map 関数を提供します。以下に例を示します。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 过滤奇数 filtered_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(filtered_numbers) # 输出 [2, 4, 6, 8, 10] # 映射乘方 mapped_numbers = list(map(lambda x: x**2, numbers)) print(mapped_numbers) # 输出 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
filter 関数は、ラムダ式を渡すことによって、
numbers 内のすべての偶数を除外します。
map 関数は、ラムダ式を渡すことによって、
numbers の各要素に対して二乗演算を実行します。
以上がPython で関数型プログラミング スタイルを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。