間接的な関数呼び出し
apply
apply(ビルトイン関数)を使うと、関数を間接的に呼び出せます。applyの第1引数は関数名、第2引数はパラメータリストです。applyの第3パラメータ(省略可能)を使うと、mappingオブジェクトの形で引数を指定できます。
def f(x) :
return x * x + 1.0
# apply
print apply(f, [2.0])
print apply(g, [], {"x" : 4.0, "y" : 2.0})
上の実行結果は
5.0
7.0
です。
map
map(ビルトイン関数)を使うと、リストのすべての要素に対して、その要素をパラメータとし関数を実行できます。
def f(x) :
return x * x + 1.0
# map(0,1,2,3,4について関数fを実行)
y = map(f, range(0, 5))
print y
reduce
reduce(ビルトイン関数)を使うと、リストのすべての要素に対して、その要素をパラメータとして「累積的」に関数を実行できます。
def sum(x, y) :
return x + y
# reduce(リストの総和を求める)
y = reduce(sum, range(0, 5))
print y
これはy = (((0+1)+2)+3)+4を計算し、結果が10となります。
filter
filterビルトイン関数)を使うと、リストの要素をある条件によって抽出できます。
def odd(x) :
return (x % 2 == 1)
# filter(奇数を抽出)
y = filter(odd, range(0, 10))
print y
この結果は、[1, 3, 5, 7, 9]となります。