- 1 名前:uy [2012/08/11(土) 12:21:25.19 ]
- 面白かったのでコピペ
979 名前:uy[sage] 投稿日:2012/08/11(土) 11:53:55.80 面接官「特技はRubyとありますが?」 学生 「はい。Rubyでならなんでもかけます。」 面接官「ではシングルトンパターンを書いてください。」 学生 「存在しません?」 面接官「え、存在しない?」 学生 「はい。存在しません。Rubyはシングルトンパターンを言語でサポートしています。」 面接官「・・・で、その言語でサポートされた機能を使うとシングルトンパターンになるんですよね?」 学生 「はい。シングルトンパターンです。」 面接官「いや、あなたRubyでシングルトンパターンは存在しないといいましたよね。なぜシングルトンパターンになるんですか?」 学生 「でも、シングルトンパターンは存在しないんですよ。」 面接官「いや、存在しないとか問題じゃなくてですね・・・」 学生 「Rubyなら簡単にシングルトンパターン書けますよ。」 面接官「ふざけないでください。それに機能が用意されてるってことは存在するでしょ。だいたい・・・」 学生 「機能は用意されていますが言語でサポートしているんです。だから存在しません。」 面接官「聞いてません。帰って下さい。」 学生 「あれあれ?怒らせていいんですか?シングルトンパターン書きますよ。」 面接官「いいですよ。書いてください。Rubyでシングルトンパターンを。それで満足したら帰って下さい。」 学生 「運がよかったな。Rubyにシングルトンパターンは存在しないようだ。」 面接官「帰れよ。」
- 331 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:07:22.74 ]
- >>328
nonlocalの追加は、リストにする手間が省けたという意味では確かに改善だけど スコープ自体は問題なくね。だからこそnonlocalが要るんだし
- 332 名前:153 mailto:sage [2012/08/16(木) 22:08:05.65 ]
- >>311
>せめて>>297を満たす御題くらい作れよ え、>>197,198,306の御題は>>297を満たしているけど、何か? > (1)Pythonのlambdaじゃ書けなくて ==> わざわざ複数の引数を渡しているから、Pythonのlambdaじゃ書けない (タプルを使えば書けないことも無いかもしれないけど冗長になる) > (2)関数を定義したら冗長になってしまうほど短い ==> 1カキコ内に収まるほどのコードなので、十分に短い しかも再利用されないコード断片なのだから、関数定義が冗長なのは明らか (Pythonの無名関数(=ラムダ式)って、一体何のために存在してるの?) また、お題について不満があるなら、それを最初に(>>198の直後に)主張しないとね 散々ゴネたあげく後出しでブーブー文句を言うのはカコワルイよ
- 333 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:08:32.79 ]
- >>328
nonlocal(酷い名前だ)を追加したPython3ではネストスコープの問題は無いの?
- 334 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:09:07.30 ]
- じゃあ前もって言うけど、今後二度とクソレスすんな
- 335 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:10:44.41 ]
- >>332
>> (2)関数を定義したら冗長になってしまうほど短い >>211のコードは>>197のHaskellや>>306のSMLより簡潔だけど? ああ関数型言語は冗長なのか
- 336 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:11:12.57 ]
- 皆が153みたいに粘着してないんだから、後から文句言うなとか文句言ってる時点で頭おかしい
間違いは素直に認めろよ
- 337 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:13:45.93 ]
- 間違いを認めるなんて無理だろうから
目の前のPCを破壊して二度と書き込まないでほしい
- 338 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:15:45.76 ]
- >>330
RubyとPerlは? というかPerlが完全に空気化してるのは、負けたからか? まだそこそこ使われてるイメージだけどなあ
- 339 名前:153 mailto:sage [2012/08/16(木) 22:16:29.83 ]
- >>314
>関数型言語でなければならないという観点は間違ってる気がする ああ、これについては同感だね 現状のどの関数型言語も文字列、パターン、ハッシュの操作に難があるから、 現行LLであるPerl/Python/Rubyを置き換えるには無理があると思う ただし、関数型言語にも良い特性がある訳で、実際に(LLを含む)多くの言語に影響を与えている だから自分は「LLにおける関数型プログラミング」に注目している
- 340 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:18:23.40 ]
- >>331
意味わかんねー。問題があったからnonlocalが追加されたんだろ。 しかもnonlocalが有るんなら、代入のある無しでスコープが変わる糞仕様は要らないだろ。 互換性のために残っちゃってるけど。 代入が無ければネストスコープ。 代入が有ればローカルスコープ。 しかしnonlocalが有れば代入があってもネストスコープ。 はぁ、糞ややこしいな。 代入の有る無しと、nonlocalの有る無しの、 二箇所を確認しないといけないなんて。 直感的でも無いしな。 しかし、代入の有る無しでスコープ切り替わるってのは意味分からないよな。 代入は「代入」だろ。代入に別の意味持たせるなよ。
- 341 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:18:38.00 ]
- >>339
LLにおける関数型プログラミング toro.2ch.net/test/read.cgi/tech/1345123070/ お前一人が明らかに邪魔なので、こちらでどうぞ
- 342 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:21:13.16 ]
- >>340
いや互換性はもはやないよ。あと、代入するならnonlocalだよ
- 343 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:24:19.36 ]
- >>332
再利用しないものに名前を付けるのが冗長だというなら >>197にあるh,b,fという一次変数も冗長で不要
- 344 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:24:22.12 ]
- >>333
ああ、問題残ってるよ。代入の有る無しでスコープが切り替わる問題が。 互換性のためか残っちゃってるけど、 nonlocal追加したんなら、思い切ってこの糞仕様は廃止すべきだったな。 nonlocal有りならネストスコープ、無しならローカルスコープ。 一貫してそれでよかったんだよ。シンプル、単純、分かりやすい。 スコープ調べるのに代入の有る無し調べるとか意味わかんねー。 折角nonlocal追加したのに、なぜに。 二箇所調べなきゃならなくなったから、状況はより悪化したともいえる。
- 345 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:25:04.92 ]
- >>340
shadowingの概念知らんの?
- 346 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:26:16.84 ]
- >>344
ちょっと待てよ。nonlocal追加以前はそもそも代入不可だろ
- 347 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:27:08.83 ]
- 代入と宣言の区別もつかんアホがスコープ批判か...
- 348 名前:uy [2012/08/16(木) 22:27:35.56 ]
- perlは終了
jsは用途が違う PHPはいわずもがな pythonは日本じゃ流行らない rubyですね
- 349 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:30:33.87 ]
- >>346
いや、代入できるよ。ローカルスコープの変数になるけどな。 代入があっても、nonlocalならネストスコープ。 nonlocal無くても、代入が無ければネストスコープ。 あー超ややこしいね。 単に、nonlocal有り/無しで、ネスト/ローカルが切り替わる 方が直感的で良いよなぁ。
- 350 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:31:24.90 ]
- >>349
いや、nonlocalを何のために使うのか理解してないでしょw
- 351 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:34:27.06 ]
- >>349
その側の変数には代入できない。それを可能にするのがnonlocal
- 352 名前:153 mailto:sage [2012/08/16(木) 22:34:31.89 ]
- >>335
え、単純なステップ数で比較しているの! こちらとしては「再利用されない(一度しか使われない)コード断片を わざわざ関数として定義するのは無駄(=冗長)」と言ってるだけだけど、これは非常識なのかな? というかPythonの無名関数(=ラムダ式)は、いったいぜんたい何の為に存在してるんだろう? ああPythonのラムダはやっぱり「まがい物」なのか
- 353 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:35:25.54 ]
- >>351訂正:その側→外側
globalに似てて、globalとも違うから、いいネーミングだと思うけどなあ
- 354 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:37:12.96 ]
- >>350
その変数がネストスコープであることを示すためだ。 しかし、nonlocalが無くても、参照のみならネストスコープだ。 ここがまずおかしいね。普通、ローカル変数となるべきところだ。 そして、(代入無しで参照しているから)プログラムはエラーで落ちなければならない。 普通そういう動作が求められるところ。
- 355 名前:デフォルトの名無しさん [2012/08/16(木) 22:40:05.99 ]
- そんな基地外スコープの言語がつかわれてる理由ってなに
- 356 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:42:12.88 ]
- >>351
なぜnonlocal無しで代入は出来ないのに参照は出来るんだ? そこがまずおかしいと思わないと。しかも完全なリードオンリーならまだ使い道もあるが、 実際にはメンバ変数を変更したりは自由なんだからCのconstの代わりとしても役に立たない。 別に狙ったものでもなんでもなくて、代入で宣言を代用したことによる単なる文法上の不備でしかないからな。 しかし代入の有る無しでスコープの変わるカス仕様を擁護できるとはおめでたい。 そういう頭じゃないとPythonに惚れ込むのは無理なのか。
- 357 名前:uy [2012/08/16(木) 22:44:18.14 ]
- なんかpython使いたくなってきた
スコープは基地外なほうが便利なこともあるんじゃない
- 358 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:44:18.55 ]
- 2.xは外側の変数を書き換えられなかったけど、3.xは明示すれば書き換えられるようになっただけじゃね
なにを混乱するんだろう
- 359 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:45:56.65 ]
- >>356
局所変数を定義したら外側のスコープの 同名の変数は直接見えなくなる Cで書けばこういうことね int x = 0, y = 0; { int x = 1; printf("%d,%d\n", x, y); } printf("%d,%d\n", x, y); こんな簡単なことも分からない馬鹿って生きてる意味あるの?
- 360 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:47:51.21 ]
- >>352
Pythonのラムダ式は要らんね ただ再利用されなくても関数として定義するのは言語問わず無駄ではないよ…マシンには無駄かも知れないが コードを読む際には処理の区切りや、その処理の区切りにとって必要なデータは何なのか、などが明確になる
- 361 名前:uy [2012/08/16(木) 22:48:23.51 ]
- >>359
それはCのゴミカスコープ
- 362 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:51:18.10 ]
- >>359
だからそれがカス仕様だって言ってるんだ。 >局所変数を定義したら外側のスコープの同名の変数は直接見えなくなる それはごもっとも。しかしだ、問題はそこじゃない。 変数の宣言に代入を代用しているから、代入しようとすると宣言する羽目になって、 お前の言う、「局所変数を定義したら外側のスコープの同名の変数は直接見えなくなる」 に陥ってるんだ。だから変数の宣言と代入が別の構文なら、こういう問題は発生しない。 宣言せずに、代入だけすれば、その側のスコープの変数に代入できるからな。 そこがまずミスってるわけ。そんで今になってnonlocal追加。余計にカオス。 他の言語で見られるようなvar方式の方がましだったってわけ。
- 363 名前:153 mailto:sage [2012/08/16(木) 22:52:20.86 ]
- >>341
お、わざわざスレを立ててくれたんだね、ありがとう 早速、Python関連サイトへのリンク集をカキコしておいたよ では、このスレでは議題が「Pythonにおけるnonlocalの是非」へと移ったからみたいだから、 (このスレでは)しばらくROMにまわることにする
- 364 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:53:35.57 ]
- いや、そんなに混乱することコレ?w
なんか本当に混乱して全く理解できない状態で説明してるんだよね
- 365 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:54:19.53 ]
- >>363
お前の引き出しの少なさに唖然とするわ というかお前Pythonのこと何も知らんくせにPythonのリンク貼るなカス
- 366 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:55:12.21 ]
- var: 局所変数を宣言するときに付ける
nonlocal: 外側のスコープの変数へ代入するときに付ける 局所変数の宣言の方が沢山書くんだからvarの方が冗長 ていうかnonlocalが無ければ外側の変数に代入できないんだから 混乱するのはアホだけだ
- 367 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:55:34.09 ]
- >>363
良かったね^^ これで思う存分お前のやりたい議論が出来るね^^
- 368 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:58:26.10 ]
- 簡単に言えば、「何で代入したいだけなのに勝手に宣言しちゃうわけ?」ってこと。
代入と宣言はまったく別のものだろ。 代入は代入だし、宣言は動的型言語の場合スコープを決めるためのものだ。 一緒くたにしてしまって、使い分けできなくなってしまって不便になったものだから、 あとからnonlocal追加。塩と砂糖を混ぜておいて、後から塩だけ分離するようなものだ。 はじめから混ぜるな。あたりまえ。
- 369 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:00:16.56 ]
- いやだから、nonlocalの追加で解決したんだろ?w
- 370 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:00:51.21 ]
- >>366
自分で書く場合は混乱しない。問題はは他人のソースを読む時。 ある変数のスコープを調べたい時、nonlocalと代入の有る無しの両方を確認しないと スコープが確定しない。
- 371 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:03:05.53 ]
- そうかなあ、混乱するコード見せてよ
- 372 名前:uy [2012/08/16(木) 23:03:18.38 ]
- uyを分離するにはpythonの話題にすればいい
だったら最初から混ぜるな!
- 373 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:03:35.02 ]
- >>370
> 自分で書く場合は混乱しない。問題はは他人のソースを読む時。 いや、お前明らかに混乱してたろww 面白い奴だな
- 374 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:06:00.64 ]
- >>369
解決していない。代入の有る無しでスコープが変わる糞仕様は残ったまま。 代入で宣言を代用する、アホな発想は残ったまま。 便利な万能調味料を作ろうとして、塩と砂糖を混ぜたのが今までのPython。 使い分けできなくなって困ったから、そこから塩だけ分離する機能をつけたのが新しいPython。 しかしだ、小学生でも言うぜ? はじめから混ぜなければ、あとで分離する必要は無いのにって。
- 375 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:07:31.61 ]
- 宣言するの面倒じゃん
- 376 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:09:13.91 ]
- 代入でスコープが変わるって何?
代入で宣言するから、宣言でスコープが決まるだけでしょ
- 377 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:10:17.73 ]
- >>374
だからお前がアホなのは分かったって
- 378 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:11:41.04 ]
- nonlocalも宣言だから、別に矛盾してないよなあ
- 379 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:13:36.05 ]
- >>375
なぜか知らないが、君がそう勘違いしているだけ。 たとえ宣言をしなくて良かったとしても、 どの道、初期化してからしか変数を使用できない。 さすがに初期化するの面倒じゃん、とは言えないでしょ。 初期化は必ず必要。だから、初期化するついでに宣言すればよい。 手間は変わらないということ。varが嫌なら、i @= 0とかでも良い。 何でも良い。普通の代入と宣言付き代入の区別さえ付けばよい。
- 380 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:15:09.84 ]
- >>379
i @= 0とかいくらなんでもキモすぎだろ。そういう言語があるの?
- 381 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:16:46.28 ]
- >>376
なんで代入で宣言するんだよ。宣言無しの普通の代入は? 代入と宣言は別のものだろ。代入は代入。宣言はスコープを決めるもの。 ぜんぜん動作が違う。なぜ両者を混ぜる?そしてなぜ後で分離する(nonlocal)? ナンセンスだろ。馬鹿げてるって分からない?
- 382 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:16:53.87 ]
- > i @= 0
Perlに倣ってシメジ代入演算子と命名しました
- 383 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:17:30.34 ]
- PythonはNoneにappendしたらリスト作ってほしい
- 384 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:18:27.99 ]
- リストとNoneを返す関数の返り値にappendするならいいけど
それ以外の場合はろくなことにならない悪寒
- 385 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:18:54.59 ]
- >>381
便利だからだろ。それで必要な所だけで宣言するようにしたんだから お前の案よりエレガントじゃね
- 386 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:19:35.83 ]
- >>380
宣言が i := 0 って言語なら有る。 @=はキモいけど、今回あえてそう書いたのは、 プロポーショナルフォントだと「:」が潰れて:=と=の区別がつきにくく、 掲示板に投稿するのには向いて無いから。 でも実際なんでも良い。普通の代入と宣言付き代入の区別さえ付けば。
- 387 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:23:04.62 ]
- 動的言語を使わないほうが精神衛生上良いのでは…
- 388 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:26:50.76 ]
- Pythonのネストスコープに欠陥がある!なんて言うから楽しみだったのに
自分の好みを連呼するだけの馬鹿だと分かってガッカリ
- 389 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:29:09.85 ]
- のんろーかるってなんぞ?
- 390 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:29:37.78 ]
- nonlocal使った具体的なソースがみたい
- 391 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:30:33.43 ]
- さぁ、これでまたパイソニストの数が減ったかな。
ラムダは貧弱だし、スコープはおかしいし、 単純にラムダ多用が当たり前の今の風潮に向いて無い言語なんだよね。 ラムダはスコープが重要になってくるし、しかもそのラムダ自体が貧弱なのだから。
- 392 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:31:54.33 ]
- はい勝利宣言はいりました
- 393 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:35:12.23 ]
- こりゃラムダ
- 394 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:37:44.86 ]
- これだけは断言できる
今日一日で関数型言語を嫌う人間は確実に増えた
- 395 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:44:43.34 ]
- Pythonのリスト内包は見にくくて、Rubyの関数型の記述は見やすいの?
- 396 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 23:51:58.10 ]
- 仮にPythonのラムダが強化されて無名関数が作れるようになったとしても、
こんどは代入の有る無しでスコープが切り替わる変な仕様が牙をむいてくる。 ことラムダに関してはPythonは2重に詰んでいる。 逆にその辺を何故かうまくかいくぐったJSの先見の明には驚かされる。 シンプルで素直な言語仕様が生きたな。 Cにも通ずるものがある。
- 397 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 00:07:03.34 ]
- >>390
クロージャでよくある例として、関数が呼び出された回数を数えるカウンタ ここではデコレータで、カウントしたい関数をデコレートして実現してみた Python2.x:参照が読めるだけだからリストを使う ideone.com/aa0et Python3.x:nonlocalで宣言した外側の変数に代入できる ideone.com/8C3tB
- 398 名前:デフォルトの名無しさん [2012/08/17(金) 00:13:45.80 ]
- c = 0
def f(): nonlocal c c += 1 print(c) f() つかこれは動かないけどw メソッドの内部にはない変数はまた別ってこと?
- 399 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 00:15:21.58 ]
- それはnonlocalじゃなくてglobal。Python2.xから出来る
- 400 名前:デフォルトの名無しさん [2012/08/17(金) 00:19:40.50 ]
- www.python.jp/doc/release/tutorial/index.html
チュートリアルにデコレータないんだけどなんなの
- 401 名前:uy [2012/08/17(金) 00:21:22.59 ]
- うえ
ちょっと試したけどPythonきも これはrubyで余裕で勝てる
- 402 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 00:26:22.46 ]
- デコレータは使い方が色々あって重いし、なくても当面はなんとかなるからな
チュートリアルに載ってないことなんてナンボでもあるべ
- 403 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 00:30:07.04 ]
- いちおー言っとくけど重いってのは学習のことね
- 404 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 00:37:20.38 ]
- ちなみにPythonスレに2タブのコードを貼ると掘られます
- 405 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 00:45:42.98 ]
- >>391
減るわけないじゃん。 >>385を論破してみろよ
- 406 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 00:54:36.95 ]
- 代入で宣言を兼ねるのは問題が全く無いワケではないが、彼はそれについて全く説明できていないんだよなあ。
面白いから答え書かずに眺めておこう。
- 407 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 00:59:43.48 ]
- はいはい、頭良いフリはいいからROMってろよ
- 408 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 01:11:43.19 ]
- >>405
代入で宣言を代用する方式は、ネストスコープを持つ最近の言語には殆ど採用されて無い、 というか、俺は見たことが無い。優れた方式ならもっと採用されているはずだろ。
- 409 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 01:18:03.74 ]
- >>407
バカですが何か
- 410 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 01:35:29.44 ]
- >>408
そのレスだけでは詭弁でしかない
- 411 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 01:39:45.14 ]
- 採用されてれば優れてるのか
Python自体はあちこちにそこそこ採用されてるからやっぱり優れた言語なんだな
- 412 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 01:59:31.43 ]
- >>410
どこが詭弁なんだよ。 Pythonが出来た時代にはこんなにラムダが多用されるようになるとは 夢にも思わなかったんだろうよ。 だから、インナー関数は殆ど使われないし、ネストスコープもそんなに現れない、 そういう前提で、代入で宣言を代用したんだろう。 ところが、世の中ラムダだらけ、スコープだらけになってしまった。 時代を読むのは難しいが、ネスケ社が片手間に作ったJSがその辺上手に切り抜けているから 言い訳は出来ないわ。やはり言語仕様はシンプルで素直なのが一番。 当時の常識で変に捻ると後々邪魔になる。
- 413 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:05:54.04 ]
- JSのどこがシンプルなんだよ。JSの本にもクセがあると書いてあるくらいなのに
まず、Pythonでも普通にラムダは使うし、他の言語より使わないとしたらそれはリスト内包表記が便利だからだよ
- 414 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:08:22.62 ]
- JSの何をもってシンプルと言ってるのか分からない
自分が好き=シンプルなのか?
- 415 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:10:14.31 ]
- >>413
Pythonのラムダって、あの式しか書けないやつですか?
- 416 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:10:46.27 ]
- >>413
どっちかっつーと機能制限のせいだと思う、というか自分はそれがあるから内部関数のほうが多い 今は三項if式があるから昔よりマシになったけど、文が書けないってのは何気にキツいと思う
- 417 名前:uY ◆gXFLM6waxs mailto:sage [2012/08/17(金) 02:12:07.39 ]
- なんでこのスレ今日はこんなにヒートアップしてんの
ちょっと落ち着けば? img.pics.livedoor.com/011/c/6/c6a670a71f0ef9867635.gif img.pics.livedoor.com/012/8/8/880651e544c143b0cbce.jpg
- 418 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:13:45.30 ]
- CoffeeScript はプログラミング言語のひとつである。コードはJavaScript のコードに変換される
Ruby や Python、Haskell から影響を受けたシンタックスシュガーの導入により、JavaScript に比べ簡潔さと可読性を向上させた ワロタ
- 419 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:16:05.29 ]
- ラムダを多用ってどこの誰が多用してんの?
- 420 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:19:28.36 ]
- 最近の言語と言ってるが、最近の言語で言語仕様がシンプルなんてなくね?
JSがシンプルというのも甚だ疑問だけど、他の最近の言語だって全然シンプルじゃないだろ
- 421 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:20:53.14 ]
- >>419
関数型では多用するけど、手続き型では代替手段を使うことのほうが多いよね PerlやRubyはブロックだし、Pythonはforイテレータやリスト内包、ジェネレータ式や内部関数 強いて言えば無名関数リテラルでやるJSくらいじゃないか?当て嵌まるのって
- 422 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:25:00.28 ]
- 俺は式の途中で関数オブジェクトが入るべき場所に
巨大なラムダをねじ込む方が明らかに醜いと思うけど
- 423 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:27:11.15 ]
- >>421
え、このスレでは、Rubyのブロックをラムダって言ったら怒られるわけ?
- 424 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:29:13.98 ]
- 式で表現できるくらいならまだしも、ある程度まとまった機能を分けるのは当然のことだと思うけど
関数定義してはいけないという宗教の人は酷いコードを書いてそうだな
- 425 名前:uY ◆gXFLM6waxs mailto:sage [2012/08/17(金) 02:33:33.57 ]
- 俺様から言わせてもらうとラムダとオブジェクト指向は相性悪いと思うよ
ある程度まで大きな処理になるならラムダじゃなくてクラスにするべきなんだよ そこら辺のさじ加減を間違えるとゴミ
- 426 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:35:21.78 ]
- >>424
嫌だよ。俺の感覚だと、ラムダはfor文やif文に続くブロックと同じ扱いだから。 あそこを名前つけて関数化したいやつはおるまい。
- 427 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:40:31.77 ]
- それはお前の感覚が完璧に間違ってるだけ
- 428 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:45:41.20 ]
- >>423
Rubyのブロックはそれ自体ではまだ値ではないからな オマケにラムダは別で存在するし
- 429 名前:uY ◆gXFLM6waxs mailto:sage [2012/08/17(金) 02:57:30.07 ]
- むしろrubyのブロックは標準では(ラムダ)lambdaじゃなくてprocだよ
lambdaを渡す事も出来るってだけで別物
- 430 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 03:02:03.44 ]
- >>429
いや{|v| }の段階ではまだprocですらないだろ ただのメソッド呼び出しの一部でしかない
- 431 名前:デフォルトの名無しさん [2012/08/17(金) 08:56:29.28 ]
- Ruby(笑)
スレタイ見えない馬鹿がいる
- 432 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 09:09:32.70 ]
- 良くも悪くもRubyはこのスレの主役
- 433 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 09:33:25.47 ]
- スレタイにRubyが入っていないのは永久欠番だから?
- 434 名前:uY ◆gXFLM6waxs mailto:sage [2012/08/17(金) 10:08:49.41 ]
- 勝ち抜け
- 435 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 10:51:41.54 ]
- >>433
どこぞのクソコテのせい。
- 436 名前:uY ◆gXFLM6waxs [2012/08/17(金) 11:22:36.94 ]
- 使えば使うほど他言語との差を感じる
rubyをはじめ動的言語は型情報がない分、ソースを書くのが楽だから 静的言語だと作業時間や労力的に見て 絶対にかけないようなシステムが構築できると思う 人間は例外なくプログラミング言語を完璧には使いこなせないので 「理論的に出来る」じゃ、出来ないんだ 動的言語がオモチャだなんてとんでもない 型エラーで悩まされることのない動的言語はやばいぞ
- 437 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 22:35:04.98 ]
- ねぇーよ。動的言語なんてIDE直結の開発できねえから大規模な開発なんて不可能に決まってんだろ。
コーディングの量が多くても潜在バグを探知できるから静的型付けは生産性が高いんだ。 JavaScriptでバグがでようがでまいがどうでもいい箇所しか使い道なんて無いんだよ動的型付けは。 RubyやPythonでサーバーサイドなんえ実用性とか全くない。
- 438 名前:デフォルトの名無しさん [2012/08/17(金) 22:39:12.61 ]
- IDEだと静的言語でも今時のテンプレートバリバリのソースとか
うまく扱えないだろ? あの手の環境って時代遅れかもよ?
- 439 名前:uY ◆gXFLM6waxs [2012/08/17(金) 23:12:05.26 ]
- やってる奴もいるのに不可能とか言われてもね
動的言語で大規模開発できる奴らはスキル低くないんだってば
- 440 名前:uY ◆gXFLM6waxs [2012/08/17(金) 23:25:37.50 ]
- 動的言語と静的言語を比べる時に
なんか静的言語ならバグが混入しないみたいな事言ってる奴いるけど 凄い勘違いだと思う 実際はただ混入しやすいバグの種類が違うだけ
- 441 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 00:41:53.89 ]
- 韓国最大手の釜山貯蓄銀行が破産。自己資本比率は驚異の-50.29%
engawa.2ch.net/test/read.cgi/poverty/1345217353/ 釜山(プサン)地方裁判所は16日、債務超過に陥った釜山貯蓄銀行に対し、破産を宣告しました。 釜山貯蓄銀行は去年2月17日に営業停止処分を受けたのに続き、去年4月29日には、BIS=国際決済銀行による 自己資本比率がマイナス50.29%と、健全性を示す基準の1%を大幅に下回っていたため、 不健全金融機関に指定されました。 当時、釜山貯蓄銀行の資産総額は1兆3000億ウォン、借金は3兆5000億ウォンで、 資本金の増額や第三者による買収など経営改善の可能性も低いことから、 管財人が清算に向けて破産を申請していました。 5000万ウォン以下の預金資産や優良資産などはすでにブリッジバンクのイェソル貯蓄銀行に引き継がれており、 破産宣告により、釜山貯蓄銀行に5000万ウォンを超える預金を預けている 預金者と後順位の債権者は、破産手続きによる配当を受けることになりますが、 残った資産を処分しても、配当として受け取る資金はほとんどないものとみられます。 ただ、5000万ウォン未満の預金者は、今後もイェソル貯蓄銀行の管理のもとで、金融取り引きを続けることができます。 これに先立ち、今月14日には第一(チェイル)、第一2、プライム相互貯蓄銀行が ソウル中央地方裁判所に破産申請を行っており、 トマト貯蓄銀行とパランセ貯蓄銀行もすでに先月、裁判所に破産を申請しています。 world.kbs.co.kr/japanese/news/news_Dm_detail.htm?No=44906
- 442 名前:デフォルトの名無しさん [2012/08/18(土) 00:46:48.57 ]
- z
- 443 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 01:02:28.22 ]
- >>419
LLがどうとかおいておくとC#とか?あとPowerShellもか
- 444 名前:デフォルトの名無しさん [2012/08/18(土) 01:37:03.91 ]
- >>443
お前それマジなの?
- 445 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 01:43:56.23 ]
- PyPyのSTM早く来てぇ
- 446 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 02:02:51.80 ]
- >>444
2ch総力を上げてもいいのよ?
- 447 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 02:24:21.07 ]
- 韓国経済が急激に失速している。一番の原因は、これまで韓国経済を引っ張ってきた原動力である輸出に陰りが見え始めたためだ。
輸出に次いで内需の鈍化も懸念されている。住宅価格の下落とそれに伴う消費や投資の抑制がみられ、バブル崩壊以降日本が苦しんだ 「日本型長期デフレ」の兆候が現れている、との指摘も少なくない。 ■好調に見えたのはヒュンダイやサムスンだけ 韓国の輸出は、2012年7月の通関ベースで前年同月に比べて8.8%減と大きく減った。マイナス幅は3年ぶりの高い数値だという。 これまで韓国の輸出をけん引してきた自動車の輸出が頭打ちになったのをはじめ、船舶や石油化学製品、携帯電話など主力製品の輸出が急速に落ち込んだ。 韓国の輸出額は国内総生産(GDP)対比で50%を超える。「輸出国」といわれる日本でもGDP対比では10%半ばだから、輸出依存度の高さは圧倒的だ。 そのため、輸出の不振は即韓国経済の失速に直結する。 なかでも韓国経済を支えてきたのが欧州連合(EU)向けの輸出。EUとは自由貿易協定(FTA)を結んでいる。そのEU向けが12年1〜6月期には前年同期に 比べて16.0%も減った。EU諸国の債務危機から発した景気低迷が影響した。 さらには中国向けも1.2%減った。第一生命経済研究所経済調査部の主任エコノミスト、西?徹氏は、「中国向け輸出の減少はボディブローのように効いています」と話す 。韓国の素材や部品メーカーは中国を介して、間接的にEU向け輸出を増やしてきたからだ。 headlines.yahoo.co.jp/hl?a=20120817-00000006-jct-bus_all
- 448 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 04:18:00.22 ]
- まー、Twitter社がRuby捨てたっていう事実関係は大きいよな。
- 449 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 04:30:22.45 ]
- え、なにが
ツイッター潰せばいいだけでしょ
- 450 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 09:45:36.90 ]
- >>443
テキトー抜かすな
- 451 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 11:28:02.65 ]
- TwitterはRuby捨ててJavaに移りましたよ。
動的型付け言語に人生をかけてるuvさんもきっとどこかに捨てられたんでしょうね。
- 452 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 11:35:57.91 ]
- 関数の引数不正、演算の型不一致は静的ならエラーを吐いてくれる。
型宣言がソースが長くなるだけの無用なものとか言ってるやつらは開発なんてしたことがないエセプログラマー。 オブジェクト指向言語でわざわざpublicとかの修飾子つけるのが無駄だとしか思ってないんだろうな
- 453 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 12:02:57.81 ]
- そらRubyは捨てられるでしょ。
可読性ゼロの変態文法だし、アプデするごとに互換性なくなるんだもんw
- 454 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 12:06:16.28 ]
- 静的言語ってウンkばっかなんだよな
Goには頑張って欲しい
- 455 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 12:22:28.86 ]
- Xtend使えばJavaの冗長さも大半解消されるわけで
- 456 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 12:28:14.05 ]
- >>452
型チェックがないと簡単にバグってしまうような技術レベルなら それこそエセですよ
- 457 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 12:45:51.68 ]
- 多分452と456とでは想定してるコードの規模が全く噛み合ってない
- 458 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 13:15:12.79 ]
- >>453
言語仕様が変だというのが捨てる理由なら、真っ先にPHPのシェアが0に なってなければ変なんだけどwwwwwwww
- 459 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 14:03:14.72 ]
- >>448
捨ててないよ Rubyのエンジニアが多いからこれからも使っていくみたいだよ
- 460 名前:uy [2012/08/18(土) 14:14:03.81 ]
- なんていうかわかったんだけどさ
言語の互換性ってそれほど大きな問題でもない気がする 仕様変わっても1日あればバグ全部とれるわ それにrubyは順調にひろまってるwww 評判がわるいガラパゴスは2chだけwwww
- 461 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 15:05:28.42 ]
- Rubyって韓流と同じ臭いがする
流行ってる、流行ってるっていうけどRuby使ってるヤツなんか見たこと無い
- 462 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 15:07:25.28 ]
- rubyでめし食っててスマン
- 463 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 15:11:58.61 ]
- 参考資料に https://github.com/languages
JavaScript 20% Ruby 14% Python 9% Shell 8% Java 8% PHP 7% C 6% C++ 4% Perl 4% Objective-C 3% JavaScript相変わらずつよす
- 464 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 15:26:32.95 ]
- >>463
それってプロジェクト数で出してるのかなぁ。そしたら使い捨てほど上に来やすいと納得。
- 465 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 15:27:47.86 ]
- どーいう集計のしかただよw。
Rubyが高いとか捏造ランキング乙w >>462 え?なに?ウンコでも食ってんのRuby使いは?
- 466 名前:uy [2012/08/18(土) 15:38:52.03 ]
- だってgithubってこういう認識だもの・・・
d.hatena.ne.jp/keyword/GitHub Rails や RSpec 等、また gems.github.com/ の Rubygems のレポジトリソース等、Ruby 関係のライブラリの コードを中心とした様々なオープンソースの開発の場所ともなっている。 それに 「参考資料に https://github.com/languages 」というのは実は www.infoq.com/jp/news/2011/04/github-2m > 言語に関する統計ページがあるが、これは > プロジェクト数ではなくコード行数をカウントしている。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 467 名前:デフォルトの名無しさん [2012/08/18(土) 15:48:55.18 ]
- え?
コード行数でカウントしててruby2位って相当じゃねーの
- 468 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 15:53:27.80 ]
- Rubyのスパゲッティっぷりを証明してるサイトってことか。
- 469 名前:uY mailto:sage [2012/08/18(土) 15:53:45.61 ]
- 念のため
d.hatena.ne.jp/keyword/GitHub >git のプロジェクトホスティングサービス。Rails で作成されており、使いやすいインターフェイスが特徴。 ~~~~~~~ R a i l s ~~~~~~~~~~~
- 470 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 15:57:38.08 ]
- じゃあZopeで作成されたプロジェクトホスティングサービスの統計を
調べればいいんじゃね? ところで、どこにあるん?
- 471 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 16:02:57.25 ]
- おいやめろ
>>467 行数でカウントしたいならこっちか www.ohloh.net/languages?query=&sort=code
- 472 名前:デフォルトの名無しさん [2012/08/18(土) 16:19:16.14 ]
- ___
/| | ||. |∧_∧| ||. (´・ω・| うわっ、クソスレに来てしまった。 ||oと. U| || |(__)J| ||/ ̄ ̄ ___ | | | | | o| | | | | 彡 ̄ ̄ パタン、
- 473 名前:uy [2012/08/18(土) 16:29:17.41 ]
- 行数でカウントなんてプロっぽくないな。
ステップ数でカウントと言おう Rubyはステップ数が多い。
- 474 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 17:08:37.68 ]
- RubyやPythonなんて使ってる時点でプロじゃねぇだろw
- 475 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 17:22:25.77 ]
- そもそもプロってなんだよ、みんなプロぐらまーだよってか?
- 476 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 17:35:21.01 ]
- プロならスクリプティング言語じゃなくてプログラミング言語と言いたいわけですね。
- 477 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 17:36:33.02 ]
- かぶってたはずかしい
- 478 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 17:57:03.32 ]
- いやいや、君のオヤジギャグの方がクールだよぉ〜
オレのは余計サブくなったけど・・・
- 479 名前:デフォルトの名無しさん [2012/08/18(土) 18:11:35.41 ]
- i=""
if(i) puts "true" else puts "false" end; なんでtrueになるの?
- 480 名前:uY ◆gXFLM6waxs mailto:sage [2012/08/18(土) 18:43:59.73 ]
- 空っぽになっても自分を曲げたくないからだよ
- 481 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 20:03:14.87 ]
- サブッ・・
- 482 名前:uY [2012/08/18(土) 22:10:47.15 ]
- ha?
- 483 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 23:23:57.45 ]
- Lisp由来の、非nilはすべて真ルールは
なかなかうまく機能する
- 484 名前:デフォルトの名無しさん [2012/08/19(日) 01:06:57.21 ]
- blank? が欲しい時はあるけどね
- 485 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 01:28:14.60 ]
- blank?ってどういう意味?
- 486 名前:uy [2012/08/19(日) 01:36:50.63 ]
- (頭が)空っぽ?って意味だよw
- 487 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 03:42:32.99 ]
- 白板
- 488 名前:デフォルトの名無しさん [2012/08/19(日) 04:18:39.97 ]
- >>479
文字のインスタンスがあるから
- 489 名前:デフォルトの名無しさん [2012/08/19(日) 04:21:03.00 ]
- ruby流行ってるていうのはステマ
まわりでruby使ってるやつみたことない
- 490 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 04:39:40.97 ]
- >>484
もし空文字列(長さがゼロの文字列)かどうか調べるならString#empty?があるよ
- 491 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 05:37:53.95 ]
- 使ってる人の声が大きいんだろう
- 492 名前:uY ◆gXFLM6waxs mailto:sage [2012/08/19(日) 06:10:13.39 ]
- >>489
かわいそう
- 493 名前:デフォルトの名無しさん [2012/08/19(日) 07:03:19.28 ]
- rubyさいきょう
|

|