関数型プログラミングは、プログラムを関数の集合として捉え、副作用を排除することでプログラムの可読性や信頼性を高めるプログラミングスタイルです。ここでは、関数型プログラミングの特徴と具体的なコード例を解説します。
def sum_list(lst):
    total = 0
    for x in lst:
        total += x
    return total
def sum_list(lst):
    return reduce(lambda x, y: x + y, lst, 0)
この例はpython2で、リストの要素を加算する関数を非関数型プログラミングと関数型プログラミングで実装しました。非関数型プログラミングでは、ループを使ってリストの要素を加算していますが、関数型プログラミングでは、reduce関数を使ってリストの要素を加算しています。reduce関数は、リストの各要素に対して指定された関数を適用し、結果を累積する関数です。
def double_list(lst):
    result = []
    for x in lst:
        result.append(x * 2)
    return result
def double_list(lst):
    return list(map(lambda x: x * 2, lst))
この例では、リストの要素を2倍にする関数を非関数型プログラミングと関数型プログラミングで実装しました。非関数型プログラミングでは、ループを使ってリストの要素を2倍にして新しいリストを作成していますが、関数型プログラミングでは、map関数を使ってリストの各要素に対して指定された関数を適用して新しいリストを作成しています。map関数は、リストの各要素に対して指定された関数を適用し、結果を新しいリストに格納する関数です。