Pythonのlambda
Pythonのlambdaは式しか書けないことを知った.
lambda_form ::= "lambda" [parameter_list]: expression old_lambda_form ::= "lambda" [parameter_list]: old_expression(略)
5. Expressions ― Python v2.6.4 documentation
Note that functions created with lambda forms cannot contain statements.
代入などは式ではなく文になるためちょっと複雑なことをしようとするとlambdaでは書けなくなる.
それでも書きたい場合はこことかこことかを参照.かなり読みにくくなるけど.
py3kでも同様で今後もそういう方針らしい
But it is here to stay as-is. Adding support for statements is a non-starter. It would require allowing multi-line lambda expressions which would mean a multi-line expression could suddenly exist. That would allow for multi-line arguments to function calls, for instance. That is just plain ugly.
lambdaの部分が複数行になっちゃうと,map関数とかの関数の引数部分も長くなって読みにくいよねということ.それは確かにそうなんだけども,ちょっとした再利用しないコードを書く場合には不便だなあと.あと,Rubyみたいに最後にブロックを書くとシーケンシャルに読めるのでそんなに読みにくくない気がする.lambdaとは意味が少し異なるものになりそうだけども