≮Python≯ lambda(ラムダ)式
ラムダ式を使うと小さな無名関数を作成出来る。
形式は、、、
lambda 引数(, 引数…) : 返り値の式
の形。。。
<サンプルプログラム>
#本当は代入して名前を付けない使い方が推奨されているらしいけど 、サンプルなので・・・
l = lambda x : x * 2
print ( l(2) )
print( (lambda x : x * 2)(2) )
<実行結果>
4
4
関数を渡す引数にラムダ式が使える。
<サンプルプログラム>
# indent ⇒ ____
def f(l, a):
____r = l(a)
____return r
# lambda x : x * 2 を渡す
x = f(lambda x : x * 2, 2)
print(x)
# lambda x : x * 3 を渡す
x = f(lambda x : x * 3, 2)
print(x)
<実行結果>
4
6
入れ子関数同様、ラムダ関数も、それを取り囲むスコープの変数が参照出来る。⬅ これ大事!!
(入れ子関数については⬇) https://note.com/0_humpty_dumpty/n/n98569019a58b
<サンプルプログラム>
# indent ⇒ ____
def f(a):
____#無名関数を返す
____return lambda x: a - x # a を参照出来る
l = f(10) #無名関数を受け取る
print( l(5) ) # 10 - 5 出力
print( l(3) ) # 10 - 3 出力
<実行結果>
5
7