- 【JavaScript】スクリプト バトルロワイヤル54【php,py,pl,rb】 [無断転載禁止]©2ch.net
508 :デフォルトの名無しさん[sage]:2016/08/15(月) 02:54:07.24 ID:8uNftPIu - Pythonが複数行ラムダで困っているのは
特殊な変数スコープのせいだよ 参照だけならアウタースコープ 代入があればインナースコープ っていう糞みたいなアイデアのおかげで もうどうにもならないよ それで、Pythonの人たちは、無名関数なんか糞で、名前が無いのは糞 明示的に関数名を書け!って言いだして、そんな感じ 個人的に代入の有る無しでスコープが変わるのは気持ちが悪い そもそもの原因は変数宣言を代入で代用したことに始まっていて だから代入があればインナースコープに新しい変数が宣言されたことになるし 代入無しで参照のみなら宣言がないのでアウタースコープの変数ってことになってしまった 動的型言語で宣言時に型を決める必要がないからと、宣言を無くそうって、早とちり 残念ながら変数宣言には変数の型を決める役割の他に、スコープを決める仕事もあるわけだが 宣言をなくして、これを代入で代用したのがそもそもの失敗だね 結局スコープを決めるために変数宣言は必要なんじゃね?って話で だったらついでに型名を書くのもアリだし、型推論させてもよいよねってことで 制的型言語大勝利!!
| - 【JavaScript】スクリプト バトルロワイヤル54【php,py,pl,rb】 [無断転載禁止]©2ch.net
509 :デフォルトの名無しさん[sage]:2016/08/15(月) 03:10:48.21 ID:8uNftPIu - 動的型言語はどうも宣言を無くそうっていうエネルギーがあって
それもそのはずで var i = 0 とか宣言書かされるのなら int i = 0 って書くのも、auto i = 0 って書くのもタイプ量は大差ないわけで そうすると動的型言語のディメリットばかりが目立ってくるから 明らかな目に見えるアドバンテージを得るために どうにかして宣言を無くそうと企むわけだが 変数のスコープをどうやって表現するんだってところで煮詰まる あの手この手って感じではあるが Pythonのとった、代入に変数宣言を兼ねさせるという手は最悪手といえる 本質的に別なものが同一表現となり区別がない X軸を動かすと一緒にY軸も連動するようなもの 確かにレバーは一つで済むが、これは便利なのか? てことで、スコープの問題があるので変数宣言はあったほうが良いし どうせ宣言をするなら型名を書いてもよいだろうし、型推論もあるので 静的型言語大勝利となったわけだ
|
|