Pythonのお勉強 Part10
■ このスレッドは過去ログ倉庫に格納されています
0143126
2006/07/08(土) 15:44:45lambdaが式しかとらないという仕様にはなにか理由があるはずだと思ったので、
それを聞いただけです。
べつにPythonのlambdaを非難することを狙っているわけじゃないです。
#あの文章を、Pythonへの非難と受け止められるとは思いませんでした。
#仕様がそうなっている理由を質問することがそんなに悪いことでしょうか。
>>138
なるほど。たしかに、インデントでブロックを表すPythonでは、式の中に文をいれるような
ことはしにくいですね。
JavaScriptだと、関数の引数に無名関数を指定できたりするんですが、
こんな感じ → funct(arg1, arg2, function(x, y) { if (x > y) return x; else return y; })
これはJavaScriptがインデントによらずコードを記述できるからできることであって、
同じようなことをPythonでするとして、lambda に文を埋め込むためのきれいな文法はちょっと思いつかないです。
それならdefでいったん関数を作成し、その関数オブジェクトを使う方がわかりやすいです。
個人的にはPythonのインデント方式は好きなんですが、それがこのような制限になるとは。むむむ。
>>141
できる・できないでいうと、どちらもできることに大差はないです。たんに、使い勝手の問題です。
Pythonの関数って、実際にはJavaScriptや関数型言語と同じように関数オブジェクトを変数に
代入してるだけだと思うので、ならJavaScriptや関数型言語のように無名関数を定義できる方法があるだろうと思って。
■ このスレッドは過去ログ倉庫に格納されています