アカウント名:
パスワード:
規模でっかくなったら、その場でdef ... したほうがいいでしょうねぇ
どの道ワンライナー的なのを除くと関数オブジェクトを変数(ラベル)に入れて使うわけだし...
# ということでいいのかな?
その通りです。
なのですが、例えばインスタンスに属性を付け加えたいときや、ソートのキーに指定したいとき、foo.foo = lambda ...ls.sort(key=lambda ...)のように、直接関数を入れたくなります。
また、lambdaでの対応が難しいほどに「規模が大きい」状態がRubyなどと比べて、すごく早く訪れます。
Pythonでは、変数を作って値を代入する、2つ以上の式を順次評価する、例外を発生させる・受け取る、内包表記以外の方法でループを書くといったようなことが1つの式では出来ないorやりにくく、lambdaには1つの式でしか書けません。
なので、そういう風に言われたりするのも、まぁ、分からなくはないのです……
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
たしかに (スコア:1)
規模でっかくなったら、その場でdef ... したほうがいいでしょうねぇ
どの道ワンライナー的なのを除くと関数オブジェクトを変数(ラベル)に入れて使うわけだし...
# ということでいいのかな?
M-FalconSky (暑いか寒い)
Re:たしかに (スコア:1)
その通りです。
なのですが、例えばインスタンスに属性を付け加えたいときや、ソートのキーに指定したいとき、
foo.foo = lambda ...
ls.sort(key=lambda ...)
のように、直接関数を入れたくなります。
また、lambdaでの対応が難しいほどに「規模が大きい」状態がRubyなどと比べて、すごく早く訪れます。
Pythonでは、変数を作って値を代入する、2つ以上の式を順次評価する、例外を発生させる・受け取る、内包表記以外の方法でループを書くといったようなことが1つの式では出来ないorやりにくく、lambdaには1つの式でしか書けません。
なので、そういう風に言われたりするのも、まぁ、分からなくはないのです……
1を聞いて0を知れ!