foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

map, filter, reduce

Ruby でいう map, grep, inject に対応する。


Python の基本的な関数。
リストと関数を引数にとり、処理結果を返す。


map: リストの各要素に関数を適用した結果を返す。
filter: リストの各要素を関数に渡し、戻値が真となる要素の集合を返す。
reduce: リストの各要素を順番に関数に渡し、最後の結果を返す。


以下に reduce だけ補足する。
例:

def add(x, y):
    return x + y
 
reduce(add, range(1, 11))  # => 55


こういう手続きと集合を受け取るっていう考え方が
自分に足りない大きな何かな気がする。