間接的な関数呼び出し


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]となります。