そもそも、C++はCと違って関数内で関数を定義できないし、operator() を実装した
structを関数内で定義するとテンプレートから参照できなくてエラーになるから
簡単なコードを渡すためだけでも離れた場所にstructを定義しないといけなかった。
JavaもC++よりはましだけど、関数一つ渡すためにclassを定義しないといけなかった
からクロージャや関数型変数の導入が考えられている。

それに対して、Pythonの場合実装が1行の関数を作るのには def foo(): を
つけるだけで良くて、コード上のオーバーヘッドが圧倒的に少ない。
関数内で名前付き関数を作るのが十分に簡単お手軽だから、lambdaの出番は
本当にちょっとした式だけで良い。