高階関数の理解と活用方法 - コード例とともに解説


  1. マップ (map) 関数: マップ関数は、リストや配列などの要素に対して、指定した関数を適用して新しいリストを生成します。例えば、以下のコードは、リストの各要素を2倍にするマップ関数の例です。
def double(x):
    return x * 2
numbers = [1, 2, 3, 4, 5]
doubled_numbers = list(map(double, numbers))
print(doubled_numbers)  # 出力: [2, 4, 6, 8, 10]
  1. フィルタリング (filter) 関数: フィルタリング関数は、リストや配列などの要素に対して、指定した条件を満たす要素だけを抽出します。以下の例では、リストから偶数の要素だけを取り出すフィルタリング関数を使用しています。
def is_even(x):
    return x % 2 == 0
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(is_even, numbers))
print(even_numbers)  # 出力: [2, 4]
  1. リダクション (reduce) 関数: リダクション関数は、リストや配列などの要素を結合して単一の値を生成します。例えば、以下のコードは、リストの要素を合計するリダクション関数の例です。
from functools import reduce
def add(x, y):
    return x + y
numbers = [1, 2, 3, 4, 5]
sum_of_numbers = reduce(add, numbers)
print(sum_of_numbers)  # 出力: 15
  1. 関数合成: 高階関数を使用して、複数の関数を組み合わせて新しい関数を作成することもできます。以下の例では、2つの関数を合成して新しい関数を作成しています。
def add(x):
    return x + 1
def multiply(x):
    return x * 2
composed_function = lambda x: multiply(add(x))
result = composed_function(3)
print(result)  # 出力: 8

高階関数は、プログラムの柔軟性と再利用性を高めるために非常に強力なツールです。これらの例を参考にして、自分のプログラムに高階関数を活用してみてください。