【Perl,PHP】LLバトルロワイヤル20【Ruby,Python】at TECH
【Perl,PHP】LLバトルロワイヤル20【Ruby,Python】 - 暇つぶし2ch343:デフォルトの名無しさん
12/01/31 11:03:32.03
break/continueみたいなフロー制御は手続き型のforループでは常用されるけど、
内部イテレータがモデルにしてる高階関数での反復計算ではそうではないよね
(基本抜けられなくて、どうしても抜けたければ例外を使いなさいみたいなことが多い)

こうした途中脱出的な手続き構文をサポートするためかどうか知らないけど
Rubyのブロックやその眷属は結構トリッキーなものになっているように見える

あと、RubyのブロックやPythonの内包表記の変数のスコープはリークするんだっけ?

344:デフォルトの名無しさん
12/01/31 21:49:12.70
>>342
>まあ現代的な言語では内部/外部イテレータの両方をサポートしているのが普通
何をもって内部イテレータと呼ぶかだよなあ。
たんに関数オブジェクトを渡すだけならいろんな言語で内部イテレータをサポートできるけど、
Rubyの場合はbreakやcontinueができるから内部イテレータと言えるのであって、
それができない(あるいは例外処理とかでお茶を濁している)言語では、内部イテレータと呼ぶのは違和感ある。
内部イテレータと同じようなことができる、というだけなら同意。

>Rubyが面白いのは
>・イテレータと呼ばれていた反復手法に高階関数という解釈を与え、自由度を高めた
>・関数引数が一つの場合に特化した糖衣構文をブロックという形で提供した
>(イテレート目的で使われることが多かったので、昔のRubyではブロック構文のことをイテレータと読んだ)
>
>これがポイントであって、uyのイテレータ馬鹿は完全に論点を外してる

ここらへんはその通りだと思う。最後の行も含めて。


345:デフォルトの名無しさん
12/01/31 22:12:53.93
Rubyのブロックの引数は
Ver1.8までは外側の同名変数を共有してましたが
1.9からは遮蔽するようになりました
ブロック引数の名前が外側の変数と被ってなければ
そのスコープはブロック内に限られます
10.times{|i| i }
print i # => エラー
外側の変数と被ると
i = 999
10.times{|i| i }
print i # => 1.8までは 9 1.9以降は 999


(よく知りませんが)Pythonはちょろっと試したところだと
Ver2.7では、リスト内包表記はスコープを作らず外側と共有
3からは スコープを作って外側の変数を遮蔽

[i for i in range(10)]
print(i) # 2.7だと9 3以降だとエラー

外側の変数と被ると
i = 999
[i for i in range(10)]
print(i) # 2.7だと 9 3以降だとだと999

ジェネレーター式は2.7でも3でもスコープを作って外部変数を遮蔽



346:デフォルトの名無しさん
12/01/31 22:31:48.91
rubyやpythonにはこんな落とし穴はあるのかな?
URLリンク(blog.practical-scheme.net)
と思って、pythonで書いてみた。あまり知らないので間違っているかも。

>>> f = [lambda : i for i in range(10)]
>>> [g() for g in f]
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]

347:デフォルトの名無しさん
12/01/31 22:40:38.32
python3.2では>>346の示した結果になった。
>>346はどのpythonで実行したの?

348:346
12/01/31 23:03:36.15
>>347
2.7.2

>>346 で提示したページもよく分かっていないで話を投げたのだけれど、
2系と3系では意味が異なるのかなあ?

349:デフォルトの名無しさん
12/01/31 23:33:04.02
Rubyのブロック変数は各ループごとでの共有はしていないので
f = 10.times.map{|i| lambda{i}}
f.map{|g| g.call} # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
ブロックってのは関数を渡して、毎ループごとにそれを呼び出してるようなものだから
ループごとのiは別もの、その別々のiをクロージャーが閉じ込めてる

ただ、1.8までだとブロック変数が外部と被ってると、ループごとのiがすべて同じになるので
i=0
f = 10.times.map{|i| lambda{i}}
f.map{|g| g.call}
1.8だと [9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
さらに
i=10
f.map{|g| g.call}
などと、続けると 当然[10, 10, 10, 10, 10, 10, 10, 10, 10, 10]に

1.9だと遮蔽されてるのでどちらも [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


350:デフォルトの名無しさん
12/01/31 23:37:37.05
Pythonでは内包表記ではループ変数は共有されるんだね
f = [lambda : i for i in range(10)]
print( [g() for g in f] )
i = 10
print( [g() for g in f] )

Python 3だと
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]

Python 2だとスコープがもれるので
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
[10, 10, 10, 10, 10, 10, 10, 10, 10, 10]


351:346
12/01/31 23:49:13.98
こうすればいけるのか。
f = [(lambda x: (lambda : x))(i) for i in range(10)]

352:デフォルトの名無しさん
12/02/01 08:10:53.25
素直にジェネレータ式を使うべき

f = (lambda : i for i in range(10))
[g() for g in f]

353:デフォルトの名無しさん
12/02/01 21:03:01.10
>>352
こうなる

f = ( lambda : i for i in range(10))
a = [ g for g in f]
print( [g() for g in a ] )

[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]

354:デフォルトの名無しさん
12/02/01 21:09:07.55
lamdbaの入れ子はわかりにくいから
可読性を考えて、こうするのがいいんじゃね

def gen(x):
  def _gen():
    return x
  return _gen

f = [gen(x) for x in range(0, 10)]

355:デフォルトの名無しさん
12/02/02 00:35:02.88
このスレの話題RubyとPythonとPHPばっかりなんだけど、
CとPerlとJavaScriptをずっと使い続けてきてる俺は
このスレ的にはどんな存在なの?

356:デフォルトの名無しさん
12/02/02 00:55:53.91
話題がなければその時は話に上らないだけで
スレ的にはあーだこーだ書いてもぜんぜん問題ない

357:デフォルトの名無しさん
12/02/02 00:59:26.43
引数が増えてるからエラーに弱くなってるけど、自分ならこうする

f = (lambda i=i: i for i in range(10))

358:デフォルトの名無しさん
12/02/02 01:19:24.97
本気でlambdaのリストを得たいわけじゃなくて
気をつけなければならないことがあるねって話でしょ

Pythonだと似たようなので、関数のデフォルト値とか

そもそものリンク先の話は
「プログラマが気をつけなければならないのはわずらわしいね」
って話?

359:デフォルトの名無しさん
12/02/03 19:02:07.94
__call__使うのもいいな

class Func(object):
  def __init__(self, num):
    self.num = num
  def __call__(self):
    return self.num

360:デフォルトの名無しさん
12/02/03 21:13:01.54
動的言語で一番速いのはどれだ
URLリンク(www.anlyznews.com)


361:デフォルトの名無しさん
12/02/03 21:18:09.88
Javaだろうな

362:デフォルトの名無しさん
12/02/03 22:24:00.00
動的言語限定ならdynamics C#が圧倒だろ

363:デフォルトの名無しさん
12/02/03 22:27:17.45
次点でPhalanger

364:デフォルトの名無しさん
12/02/03 22:45:36.10
schemeだろ

365:デフォルトの名無しさん
12/02/03 22:53:40.90
>>364
あほ?

366:デフォルトの名無しさん
12/02/03 23:32:29.57
>>365
schemeより早い動的言語あるの?

367:デフォルトの名無しさん
12/02/04 00:03:07.69
>>366
あほ?

368:デフォルトの名無しさん
12/02/04 01:02:11.07
>>360
こういう比較はやっちゃダメです、っていう見本みたいな記事だな

369:デフォルトの名無しさん
12/02/04 01:14:20.55
>>367
何があほなの?

370:デフォルトの名無しさん
12/02/04 01:21:24.97
schemeは仕様だから実装によって違うだろうなあ。
それにそもそも速そうな仕様でもないし、仕様の中にオブジェクトシステムがない。

371:デフォルトの名無しさん
12/02/04 01:23:56.61
>>370
動的言語ではあるだろ

372:デフォルトの名無しさん
12/02/04 01:29:58.82
schmeは仕様ならC++やPythonやJavaも仕様
仕様がないRubyだって処理系はひとつじゃない

373:デフォルトの名無しさん
12/02/04 01:33:55.03
scheme処理系で一時期話題だったstalinってやつは
どこまで頑張るのかなあ?

>>372
Rubyは最近、最低限の仕様がJISで規格化された

374:デフォルトの名無しさん
12/02/04 05:09:31.26
KARAの日本での活動を担当するマネージャーが、在日本朝鮮人総連合会(以下、朝鮮総連)の
所属であるという主張が提起されるなか、所属事務所側が正確な事実を確認している。

所属事務所DSPメディア側は3日、「物議をかもしている男性は、KARAの日本での活動を任されて
いるDSP JAPANの職員で、スケジュールマネージャーを担当している。活動に支障はないと思うが、
物議をかもしているので、事実かどうかを確認している」と説明した。
この関係者は、「韓国での活動には問題はないが、日本で主に右翼傾向の強い方々が疑惑を
提起していると見られる。最近、嫌韓流が強くなり、日本のファンの間でこのような話がさらに
大きくなっているようだ。まず該当の男性が朝鮮総連なのか確認した後、さまざまな状況と
今後の計画を検討し、立場を明らかにする」と話した。

これに先立ち、ある日本のオンラインコミュニティには、KARAの日本での活動に同行した男性が、
2006年11月に警視庁の朝鮮総連本部強制捜査を妨害した人物と同一だという疑惑が提起された。
特にネットユーザーたちはKARAの日本での活動途中のこの男性の写真と、警視庁の
朝鮮総連本部の強制捜査当時の男性の姿を比較して掲載した。
(以下略)

リンク先に全文
URLリンク(www.kstarnews.jp)

スレリンク(poverty板:9番)


検証画像
URLリンク(inspire.iza.ne.jp)

375:デフォルトの名無しさん
12/02/05 06:00:00.89
PHPが圧倒的に人気。
ソースはGoogle Trend
URLリンク(www.google.co.jp)

376:デフォルトの名無しさん
12/02/05 10:31:25.88
レガシーなPHPが使われたHPが、
まだ生き残っているからしょうがないな




377:デフォルトの名無しさん
12/02/05 18:40:22.92
PHPを使った事無い俺には
お前等が何でPHPを目の敵にするのか分からん

378:デフォルトの名無しさん
12/02/05 18:42:02.60
Rubyの教祖がPHPを目の敵にするから
下々の者も右へならへでPHPを目の敵にしてる

379:デフォルトの名無しさん
12/02/06 00:36:11.62
>>375
PHPとPerl爆下がりでどうみてもRubyst騙り乙だろw

380:デフォルトの名無しさん
12/02/06 12:58:53.83
>>377
PHPは悪くない。
問題は暴れるPHPer。

381:デフォルトの名無しさん
12/02/06 13:27:19.11
関数の命名規則が適当だからだろ

382:デフォルトの名無しさん
12/02/06 13:31:02.59
>>375
ウェブ系のトレンドじゃpythonよかrubyの方が伸びてるのな
数値計算やら科学技術計算のライブラリはrubyじゃ全然なわけだが

383:デフォルトの名無しさん
12/02/06 13:46:33.49
PHPは初心者をいち早く実戦投入するのに最適な言語だからな
驚くぐらいレベルの低いプログラマが多い

誤解してはいけないのはプログラム言語それ自身と
プログラマーの能力はまったく無関係だってことだ

PHPを仕事で使っているプログラマーでも優秀なプログラマーは
たくさんいるし、すごそうな言語を使っているだけの無能プログラマー
もたくさんいる

「〇〇を使っている俺すごい、PHPを使っているお前より上だから」
みたいなこというバカは多いけど

384:デフォルトの名無しさん
12/02/06 14:39:29.89
PHPってだけで、web系だって業務の幅が分かるもんじゃないの?
Matlab,Rみたく統計解析したり、関数型でパーサーみたいなもの書いたり、
そういうのと皆無で、ずらずらと手続きを並べながら、セキュリティに気配ってるだけのイメージ

385:デフォルトの名無しさん
12/02/06 14:58:16.56
「そういうのと皆無で」とか言っちゃう雑魚がおナマ言ってんなよw

386:デフォルトの名無しさん
12/02/06 17:43:03.22
PHPやってて、なんか違うってので
Ruby on Railsで作り直してて
それでもなんか違うってPHPに戻ったら

Ruby on Railsでの経験や考え方を学んだことにより
PHPでも以前よりスマートに書けた
ってブログをだいぶ昔に読んだな


387:デフォルトの名無しさん
12/02/06 17:46:02.61
PHP以外ならなんでもいいんだよ
PHPの考え方はかなり歪んでいる

他の言語でも言えることだけれど

388:デフォルトの名無しさん
12/02/06 21:04:32.26
>>384
他の言語は何系の業務で使われてんの?

389:デフォルトの名無しさん
12/02/07 05:28:38.68
>>377
現場をしらない趣味グラマーだらけだから

390:デフォルトの名無しさん
12/02/08 00:10:09.36
>>384
セキュリティに気をくばってればいいけどなあ。

391:デフォルトの名無しさん
12/02/08 00:18:41.62
>>389
趣味グラマーがわざわざPHPを使うわけないだろ

392:デフォルトの名無しさん
12/02/08 00:30:29.79
おれのPHPのソースコードは、きたなくて、ひとにみせられないよ

393:デフォルトの名無しさん
12/02/08 01:31:08.86
PHPの趣味グラマー
URLリンク(hirata-create.cocolog-nifty.com)

394:デフォルトの名無しさん
12/02/08 02:23:17.12
>>393
あーやっぱり素人が作った、しかもPHPごときではこの程度か…
もうすぐこのスレでPerl,Ruby,Pythonのプロがすげーもん見せてくれるぜ

395:デフォルトの名無しさん
12/02/08 02:56:49.35
知ってるか?
宣伝するのは本人だけって

396:デフォルトの名無しさん
12/02/08 02:58:53.11
趣味グラマーがPHPに惹かれない理由は、単純にワクワクしないからだろう
なんか初心者向けのようなチープさがあって、凄いオモチャで遊んでるという高揚感が得られないから

397:デフォルトの名無しさん
12/02/08 07:36:58.64
>>391
だから目の敵にしてるって意味じゃないの?

398:デフォルトの名無しさん
12/02/08 11:46:43.39
ActivePerlなどでインストールが簡単なら初心者向きだが、PHPのインストールは、たいへんでわ?
パソコンの初心者がApache2.2いれるか? おっかなびっくり

399:デフォルトの名無しさん
12/02/08 12:07:56.52
最近はXamppあるしなぁ

400:デフォルトの名無しさん
12/02/08 12:39:04.38
初心者のためにPHPで作ったサーバー、ダウンロード後好きな場所にZIP解凍したら無設定で即開始できます
PHPバージョンは、PHP-5.3.10
URLリンク(hirata-create.cocolog-nifty.com)

初心者のためのRADツール、WindowsのGUIスタンドアロンが簡単に作れる
PHPバージョンは、PHP-5.3.10
URLリンク(hirata-create.cocolog-nifty.com)

401:デフォルトの名無しさん
12/02/08 12:44:40.08
今となっては、Phalangerでいいな
原始の海は、とっくに過ぎ去った

402:デフォルトの名無しさん
12/02/08 14:06:40.22
LL言語童貞なボクですが、このスレをみてPythonからはじめる決意ができました。

みなさんも不毛な議論はやめてシコシコ頑張りましょうね!

403:デフォルトの名無しさん
12/02/08 16:55:54.82
Perlの入門書読んでるけどこのスレ的には(板もか?)
今から始めるならPythonかRubyらしいね


404:デフォルトの名無しさん
12/02/08 16:58:46.89
スレ的にはっつーか世の中の大部分がそう

405:デフォルトの名無しさん
12/02/08 17:14:52.56
なんか必死だねwww

406:デフォルトの名無しさん
12/02/08 17:17:07.66
PythonかRubyかは好みの問題だけど、仕事で必要じゃない限りPerlやPHPみたいな過去の異物に触れる必要はない

407:デフォルトの名無しさん
12/02/08 18:17:34.83
まとめるとPerl最高ってことか

408:デフォルトの名無しさん
12/02/08 18:20:06.90
んだな
まあとりあえず全部ひととおり触ってみるといいとおもうよ


409:デフォルトの名無しさん
12/02/08 18:24:02.46
ぷっ、クスクス…クスクス

410:デフォルトの名無しさん
12/02/08 19:16:26.75
>>406
>PythonかRubyかは好みの問題だけど、仕事で必要じゃない限りPerlやPHPみたいな過去の異物に触れる必要はない
コレが趣味グラマーかwww

411:デフォルトの名無しさん
12/02/08 19:22:38.77
仕事で必要なのだぁ

412:デフォルトの名無しさん
12/02/08 19:37:10.24
というか現在のPerlやPHPはJavaやCOBOLなんかと同じ「業務言語」だろ
趣味で使う人がCOBOL選ばないのと似たような理屈で、PerlやPHPを選ぶ理由はない

プロユースだと認められてるんだから喜べばいいのに、嬉しくないなんてもしかして働いてないのか?

413:デフォルトの名無しさん
12/02/08 20:09:31.79
仕事なら尚更Pythonにすべき

414:デフォルトの名無しさん
12/02/08 20:43:32.15
すべきと言われてもなあ....
実際、Pythonは仕事じゃ使われていない訳で (>>40,41)

415:デフォルトの名無しさん
12/02/08 20:45:17.81
いや、他人がどうとか関係ないじゃん。自分が使うと決めれば使えるだろ

416:デフォルトの名無しさん
12/02/08 20:47:10.61
Python - Wikipedia

Pythonはおもに欧米の企業でよく使われている。大企業ではマイクロソフトやアップルなどのパッケージソフトウェア企業をはじめ、
Google、Yahoo!、YouTube などの企業も利用している[4]。
また携帯電話メーカーのNokiaでは、S60シリーズで Python アプリケーションが動く[5]。
研究機関では、NASA[4]や日本の高エネルギー加速器研究機構[6]でPythonが使われている。
適応範囲はWebプログラミング、GUIベースのアプリケーション、CAD、3Dモデリング、数式処理など幅広い分野に及ぶ。
さらにスクリプト言語としての特性から、従来Perlやシェルスクリプトが用いられることの多かったシステム管理用のスクリプトとして
採用しているOSも複数ある。また、多くの異なる言語で書かれたモジュールをまとめるグルー言語としての利用例も多い。
実際、多くの商用アプリケーションで Python は組み込みのスクリプト言語として採用されている。

417:デフォルトの名無しさん
12/02/08 20:48:52.61
日本人は隣の人が使ってるのを使いたがるからPHP信者ばかりになってしまったんだろう

418:デフォルトの名無しさん
12/02/08 20:50:31.13
自分が使うということならば、その人が好きな言語(LL)を自由に選べばいい訳で....
Pythonの「押しつけ(....すべき論)」は無用だろ

419:デフォルトの名無しさん
12/02/08 20:51:41.23
自分が使うなら、Pythonを使うべきだと思うが

420:デフォルトの名無しさん
12/02/08 20:51:54.98
前にも書いたがPythonさんは排他的だから

421:デフォルトの名無しさん
12/02/08 20:54:07.32
>>416
Wikipedia記事のコピペは無駄だろ、リンクだけで十分
そんなにPythonが好きなら、自分の言葉で語れやw

422:デフォルトの名無しさん
12/02/08 20:57:19.46
なんでそんなにイラついてるんだろう。該当箇所をコピペしてるだけだろう

423:デフォルトの名無しさん
12/02/08 21:16:31.84
まあ、少なくとも日本でPythonの求人はほぼゼロなのは確か
COBOLのほうがずっとある

424:デフォルトの名無しさん
12/02/08 21:18:59.18
だからCOBOLやろうとはならんだろ

425:416
12/02/08 21:25:01.24
自分はPHP押しだが。C言語的な言語はPHPだろ。
業界のスタンダードな言語はC言語系統だろ。
なんで文法的に昔からあるなじみのあるやつ使わないのか判らん。

426:デフォルトの名無しさん
12/02/08 21:27:12.13
pythonやrubyだって十分C言語に近いだろ

427:デフォルトの名無しさん
12/02/08 21:29:54.15
だから(いくら海外で使われていても)Python使おうとはならん、とも言えるよね

Python使うべき論者は、その(技術的な)理由を具体的に書いて欲しいな
単なる押し売りは、かえって周囲の反発をまねくだけだと思う

428:デフォルトの名無しさん
12/02/08 21:40:55.55
別に海外で使われてるからという理由でPythonを使うべきと言ってるわけじゃないだろ
ただ海外で使われてる理由はCOBOLが使われてる理由よりは勧めるファクターにはなるだろうね

429:デフォルトの名無しさん
12/02/08 21:49:21.42
>>428
>ただ海外で使われてる理由はCOBOLが使われてる理由よりは勧めるファクターにはなるだろうね

なぜ海外で使われていることが薦める要因になるのだろう?
いわゆる日本人の特に年配者によくある「舶来信仰」みたいなものなのかね
トヨタ/ニッサンよりもジャグァー/メルセデス、みたいなw

430:デフォルトの名無しさん
12/02/08 21:51:58.67
>>429
海外で使われてるという事実が、じゃないよ

なんで海外がPythonを選んでるのか、それはCOBLが使われている理由より合理的なものだろ

431:デフォルトの名無しさん
12/02/08 21:53:49.60
その合理的な理由というのをkwsk

432:デフォルトの名無しさん
12/02/08 21:54:05.34
できる事に大差は無いと思う。安定性、リソース消費量での判断か。

433:デフォルトの名無しさん
12/02/08 21:55:30.05
Javascriptさんはどうなの?

っていうか、誰か擬人化で例えてくれww
Javascriptさんは長門有希みたいなイメージだな
控えめだけどなんでもこなすみたいなとこが
教科書にも控えめにって書いてあるしな


434:デフォルトの名無しさん
12/02/08 21:55:44.21
COBOLの仕事があってもCOBOLを使おうとはならないってことだ

435:デフォルトの名無しさん
12/02/08 21:56:59.54
日本人ならRuby

436:デフォルトの名無しさん
12/02/08 22:00:25.95
むかーし、Cが流行したころ、Cなら、かきかたが自由だからすき
というひとがいた(もちろん、アマチュア)
ところが、Pythonでかくと、だれがかいてもにたようなソースコードになる
というひとがいる(仕事なら、他人のソースコードを保守しなければなりないから
よみやすくて好都合)

437:デフォルトの名無しさん
12/02/08 22:00:55.57
Rubyたんは黒髪、巨乳、ヤンデレだな

438:デフォルトの名無しさん
12/02/08 22:03:56.30
>>434
やっぱり日本人、特に年配者に特有の「精神論」でしかないみたいだねw

>>435
日本人というよりも、日本語で書かれた書籍/情報が
初心者から熟練者という広い範囲で豊富に揃っているといのは、
Rubyお薦めの大きな要因になると思う

439:デフォルトの名無しさん
12/02/08 22:06:39.79
>>436
>仕事なら、他人のソースコードを保守しなければなりないからよみやすくて好都合

ところが、なぜか仕事ではPythonが使われない
なんでだろねw


440:デフォルトの名無しさん
12/02/08 22:08:11.11
>>439
精神論がまかり通ってるから

441:デフォルトの名無しさん
12/02/08 22:08:30.67
リリースするときに整形ツールのオプションを統一したら何言語でも同じようになるが。

442:デフォルトの名無しさん
12/02/08 22:10:46.08
>>437
Pythonたんは、規律にばかりウルサイ逝き遅れたオールドミスの数学教師かな
あれしなさい、これしなさい、いうことをききなさい、こうすべきザマス...みたいなw

443:デフォルトの名無しさん
12/02/08 22:12:04.75
ものは言い様だな。python使ったことすらないことがよく分かる

444:デフォルトの名無しさん
12/02/08 22:16:14.96
>>440
だよね
Python使うべきなんて精神論だけじゃ、誰もついていこうとは思わんよな

445:デフォルトの名無しさん
12/02/08 22:19:51.07
>>444
精神論がまかり通ってるから、と言ってるだろ。さっきから何で文をちゃんと読まなないんだ?日本語出来ないのか?

446:デフォルトの名無しさん
12/02/08 22:29:57.96
>>442
PHPはアホの子だけどみんなの人気者って感じだな
\\アッカリーン/

447:デフォルトの名無しさん
12/02/08 22:34:49.54
perlは関西弁だな
口達者だからなんとでも言い換えられる
そしてお金$が大好き

448:デフォルトの名無しさん
12/02/08 22:36:16.45
擬人化寒い。嫌いな言語への悪意が隠しきれてない

449:デフォルトの名無しさん
12/02/08 22:59:46.02
海外で使われてるから使うってことは
別にありがたがってるわけでもないだろ
英語だって海外で一番使われるから
覚えたほうがいいし

450:デフォルトの名無しさん
12/02/08 23:09:51.45
かといって英語を押し付けるのは違う
それと自分で評価できるようになるべき


451:デフォルトの名無しさん
12/02/08 23:12:43.69
意味不明。英語が出来ない奴はカス

452:デフォルトの名無しさん
12/02/08 23:13:47.68
いや多様性を認められない奴がカス


453:デフォルトの名無しさん
12/02/08 23:14:32.23
英語が出来ないことのメリットって何?馬鹿も休み休み言えよ

454:デフォルトの名無しさん
12/02/08 23:15:58.28
いや英語ができないとは一言も言っていない
やりたくない奴に押し付けんなといってる

455:デフォルトの名無しさん
12/02/08 23:18:39.97
良し悪しは別にグローバル化の流れを軽視して生き残れると思ってるお花畑は
確かにCOBOLくらいしか選択肢ないわな。あえて流れに取り残されるというニッチな選択も一種の多様性か
自分の好きな事だけやれば良いなんて子供みたいな主張がまかり通るわけないじゃん

456:デフォルトの名無しさん
12/02/08 23:18:42.78
>>445
だから「Python使うべき」という精神論がまかり通ってるという話だろ
それを精神論と言われたくなければ、Pythonの技術的な課題を具体的に説明しないとね

>>449
>英語だって海外で一番使われるから覚えたほうがいいし

だから、さっきから「ナゼ海外で使われている」ことが
Pythonお薦めの理由になるのかを何度も何度も質問しているのだが....
実生活面では、海外就職/転職志望者を除くと、>>40,41で指摘されているように
Pythonを学んでも就職/転職に優位とはならない(ムダとまでは言わんがね)
他に何か根拠があるのかな?

457:デフォルトの名無しさん
12/02/08 23:20:45.06
そもそもPythonが英語のごとく、そんなに使われているように思えんのだが

458:デフォルトの名無しさん
12/02/08 23:21:12.15
>>456
いや、その精神論は明らかにまかり通ってないだろ
まかり通ってる精神論は、お前の精神論だよ

459:デフォルトの名無しさん
12/02/08 23:22:44.47
linux標準だから使わない手はないだろ。Emacs使う時Lispを覚えるのと同じ

460:デフォルトの名無しさん
12/02/08 23:32:26.47
ちなみにRubyの場合だと、>>438下段で書いたように
日本語で書かれた書籍/情報が豊富に揃っているから
初心者卒業級くらいまでは日本語だけでも通用する

でも、それより技術レベルを上げようと思ったら、英語の読解力が必要
たとえば自分が必要なライブラリを探すのも、
英語ができれば(他人に頼らず)自分で調べることができる
Railsに至っては、最新版に追従していくなら英語力は必須といってもよい

グローバル化の流れの中で、英語が必須なのはPythonだけじゃないんだよん
まぁ、ごく当たり前で常識的な話だよね

461:デフォルトの名無しさん
12/02/08 23:37:16.86
>>459
もちろん(Pythonで書かれた)Linuxのツールは使うよ
でもそれがCで書いてあろうがPerl/Pythonであろうが関係ないね
必要なのは(ツールの記述言語ではなく)ツールの機能だから

また、同じ理屈であれば、Webの世界はPHPが主流でRailsも増えつつあるのが
現実の状況だから、Web利用者は(Pythonではなく)PHPやRubyを使うべきとなるのでは?

462:デフォルトの名無しさん
12/02/08 23:42:01.74
グローバル化云々でどうこういうなら今ならJavaScriptかも
というかグローバル化ってw


463:デフォルトの名無しさん
12/02/08 23:42:49.13
>>458
だから、何度も書いているけど、
Python信者は具体的な理由を説明せずに(説明できずに?)
「Pythonを使うべき」ばかり主張しているよ

それを精神論と言わず何と言うのだろうか?

464:デフォルトの名無しさん
12/02/08 23:43:27.47
>>463
宗教

465:デフォルトの名無しさん
12/02/08 23:53:46.26
pythonが便利だからでしょ。なんでも良いならアセンブラ使えば良いじゃん
でも便利なのがあればそれを使う。それだけ

466:デフォルトの名無しさん
12/02/08 23:56:45.65
>>462
JavaScriptはデファクトスタンダード化してるアレだけど
海外で使われているものは使ってはいけないという宗教の方が怖いな

467:デフォルトの名無しさん
12/02/08 23:59:20.80
精神論(古くさい根性論)がまかり通ってるせいで
(最新の)パイソンが流行らない
みたいな意味でしょ

468:デフォルトの名無しさん
12/02/09 00:01:09.06
日本のプログラミングコミュニティは可哀想なくらいショボいから
海外のコミュニティを重視すべきなのは確定的に明らか

469:デフォルトの名無しさん
12/02/09 00:02:48.10
なぜMITもUCバークレーもPythonを使うのか
下らない精神論に違いない

470:デフォルトの名無しさん
12/02/09 00:04:17.96
全然Python薦めてる人から技術的な話が出てこない


471:デフォルトの名無しさん
12/02/09 00:05:19.28
相手のレベルに合わせてるんだろう

472:デフォルトの名無しさん
12/02/09 00:06:40.60
PHPこそ普及率しか自慢できる所がない
そして、他の言語好きから必ず馬鹿にされているのがPHP

473:デフォルトの名無しさん
12/02/09 00:11:25.29
技術偏重の人はユーザビリティを理解していないし
多分、使い方が決まっていることを悪いことだと思ってる

474:デフォルトの名無しさん
12/02/09 00:24:00.86
>>473
例えば「オブジェクト指向」の定義をPythonで決められるなら良いけど
現実には、OOにclassは必須かどうかすら決まっていない
だからOOを避けて通りやすいPHPなんかが流行るんじゃないかね

475:デフォルトの名無しさん
12/02/09 00:25:58.59
いやpythonもclassやOO必須じゃねえしw

476:デフォルトの名無しさん
12/02/09 00:34:06.68
>>465
だから(他のLLと比較して)Pythonの何が便利かをkwsk

>>466
誰も使ってはいけないとは言っていないと思うけどな
日本語が不自由なお人かな?
逆に「Pythonを使うべき」と押し付けているのはPython信者だけ

>>467
その(他のLLと比較して)Pythonの何が最新なのかをkwsk

>>468
添削

X: 日本のプログラミングコミュニティは可哀想なくらいショボいから
O: 日本のPythonコミュニティは可哀想なくらいショボいから
  たとえばZopeコミュニティのグダグタっぷりは有名
  ちなみにRubyは日本発

>>469
年寄り臭い「舶来品信仰」ですか?

477:デフォルトの名無しさん
12/02/09 00:38:37.33
>>475
使い方が決まっていることが良いことだとするなら、むしろ必須にしないとダメだろ

478:デフォルトの名無しさん
12/02/09 00:39:20.80
MITやUCバークレーがPythonを使うのは「舶来品信仰」という理由だったのかあw
さすが日本発()のRubyを一押ししてる人の意見は一味違うなあ

479:デフォルトの名無しさん
12/02/09 00:40:38.16
>>477
程度問題だろ。Pythonはそのバランスがいいというだけ
技術至上主義の人には一生理解出来ないだろうけど

480:デフォルトの名無しさん
12/02/09 00:48:13.62
技術を理解したいのか、素人の心理を理解したいのかの違いかな

481:デフォルトの名無しさん
12/02/09 00:51:50.98
>>478
Pythonを薦める理由が「MITもUCバークレーもPythonを使う」という話だから、
それって舶来品信仰だよね、という指摘なんだけど
頭悪いのかな?

482:デフォルトの名無しさん
12/02/09 00:52:54.06
>>481
MITやUCバークレーは理屈なき精神論でPythonを選んだのかな

483:デフォルトの名無しさん
12/02/09 00:56:22.26
勝ち馬に乗るべき
「ドマイナー言語は使うべきではない」これは正しい精神論

484:デフォルトの名無しさん
12/02/09 00:57:00.18
MITとかがPython選んだって何の話かと思ったら、教育用言語ってことね
そんなことで使う言語決めてんの?


485:デフォルトの名無しさん
12/02/09 01:03:21.45
教育用とはまた短絡的な言葉だな
まあいいや。じゃあ、何によって使う言語を決めるの?

486:デフォルトの名無しさん
12/02/09 01:08:52.84
>>482
さて、自分はPythonに詳しくないので知りませぬ
その理由を語るべきは、Python支持派ではないかと考えます

>>483
レミングのように?w
バブル時代の発想だね

487:デフォルトの名無しさん
12/02/09 01:10:08.69
生産性、リソース使用量。

488:デフォルトの名無しさん
12/02/09 01:12:34.92
今度はバブルだって。自分こそ論理性の欠片もない印象誘導だけじゃん

489:デフォルトの名無しさん
12/02/09 01:16:30.66
「日本でPythonが流行らない」のは日本人プログラマのレベルが世界的に見てはるかに劣ってるからだろう
強いて言えば自省がない
そういう人たちには言葉を尽くしても無駄

490:デフォルトの名無しさん
12/02/09 01:25:28.12
>>489
>日本人プログラマのレベルが世界的に見てはるかに劣ってるから

だよねえ、自分もそう思っていた時期はあったんだ
どうせRubyなんて極東の島国のそれも片田舎で生まれた超マイナー言語だし、
こんなのを好むのはかなり趣味性の強いごく一部のプログラマだけだよなぁ、なんて.....

それがどういうわけか、今では世界中のプログラマに利用されているし、
中には笑っちゃうくらい熱狂的なユーザもいる
実際、Ruby関連の新しい話題は海外発であることが多いし、
るびま(Ruby Managine)も海外記事の翻訳が多くなった

どうしてこんなことになっちゃったんだろ?

491:デフォルトの名無しさん
12/02/09 01:27:41.93
開き直ったか(笑)

492:デフォルトの名無しさん
12/02/09 01:27:46.23
>>489
なんとも斜め上的な考え方だねえ

493:デフォルトの名無しさん
12/02/09 01:31:28.39
結局技術的優位性はないんか


494:デフォルトの名無しさん
12/02/09 01:34:22.43
>>490
結局海外信者じゃん
日本が糞だから相対的に海外で盛り上がってるように見えるだけで
全体としては取り立てて言うほど凄くねえよ

>>493
技術が全て横並びなら、コミュニティでぱいそんの圧勝だけどな

495:デフォルトの名無しさん
12/02/09 01:41:01.50
>>490
わろす

496:デフォルトの名無しさん
12/02/09 02:00:31.05
>>494
>結局海外信者じゃん

なんでそんな風に認識しちゃうんだろ?w
>>490で書いた「かなり趣味性の強いごく一部のプログラマ」には、
もちろん自分も含めているよ
当時を振り返ると、現在のRubyの全世界的な展開が以外だったというだけ

あとRuby本体もそうだけど、標準ライブラリを開発した作者達も日本人であり、
それらを含めてRubyが世界に認められたという事実を見落とさないでほしいな

497:496
12/02/09 02:01:50.97
訂正

X: 以外だったというだけ
O: 意外だったというだけ

498:489
12/02/09 02:06:28.03
Rubyの話なんかしてないのに

499:デフォルトの名無しさん
12/02/09 02:20:17.92
>>494
>技術が全て横並びなら、

さて、はたして技術面で横並びだろうか?
たとえば前スレ(昨年の年末)で議論された関数型プログラミングの話題だけど、結論は
「RubyおよびHaskellとMLでは簡潔に書けるコードが、
 Pythonでは可読性が悪いコードしか書けない(Pythonでも書ける、というレベル)」
だったよね(必要であればコピペするよ)

ここだけ取り出せば「Pythonは技術的にRubyより劣る」と見なせちゃうけど、それでもいいの?

500:デフォルトの名無しさん
12/02/09 02:24:27.62
関数型プログラミング自体に優位性がないのなら仕方ないよ
それなら関数型言語は素晴らしいという結論になるが、現実問題として
RubyおよびHaskellとMLはトリッキーで扱いにくい言語という烙印を押されてるだけでは

501:デフォルトの名無しさん
12/02/09 02:24:29.74
>>498
日本のプログラマが糞ばかりではない事の証明がRubyの存在なんだけど

では、>>489を添削しておこう

「日本でPythonが流行らない」のは
X: 日本人プログラマのレベルが世界的に見てはるかに劣ってるからだろう
O: 日本人Pythonプログラマのレベルが世界的に見てはるかに劣ってるからだろう

502:デフォルトの名無しさん
12/02/09 02:27:12.81
Rubyが流行ったのはRailsを作った外国人のおかげ
>>490でも日本人Rubyプログラマはやる気ないって言ってるじゃん

503:デフォルトの名無しさん
12/02/09 02:47:25.48
PHP厨の中にはPHPは素晴らしいと本気で思っている
どうしようもないのがたくさんいるから困るよ

504:デフォルトの名無しさん
12/02/09 02:57:00.72
>>502
>Rubyが流行ったのはRailsを作った外国人のおかげ

以下の事実を忘れずに

・RubyがあったからこそRailsが生まれた
・そしてPythonからはZopeが生まれたけど盛大にズッコケタ
・そして今頃になってPythonではDjangoというRailsモドキを作っている

それから、古い記事だけど

・InfoQ: Ruby「出身」2008年8月11日
 URLリンク(www.infoq.com)

 誰が知っていたかというと?

 (...前略)ですから、確信がないのであれば申し上げましょう。
 Rails以前にRubyが無名であった、なんてことはありません!

 Railsが出る前、Rubyは日本国外でさえも未知の存在ではありませんでした。
 Dave ThomasとAndy Huntによる『Programming Ruby』の初版が出版され、
 英語圏(母国語、非母国語に関係なく)ではRubyへの関心が初めて急激に高まりました。
 DaveとAndyは、この本が出版されるもっと前からRubyについて耳にしていたはずです。

505:デフォルトの名無しさん
12/02/09 02:59:09.85
これがruby信者

506:489
12/02/09 03:02:03.53
Rubyの話なんかしてないのに

507:デフォルトの名無しさん
12/02/09 03:02:32.72
海外は誰が使っているのか
わからんようなマイナーなやつでも
本出てたりするからな

508:デフォルトの名無しさん
12/02/09 03:04:02.15
ruby信者が必死なのだけは伝わって来るな

509:デフォルトの名無しさん
12/02/09 03:14:45.44
>>506
スレタイ嫁
ここは乱入/場外乱闘ありきのLLバトルスレだ
そんなにPythonだけの話がしたいのなら、巣にお帰り

510:デフォルトの名無しさん
12/02/09 03:53:13.35
>>504
RubyがなかったらPython Railsができていたと思うよ

511:デフォルトの名無しさん
12/02/09 04:47:45.83
Python なら Pails だろ常考

512:デフォルトの名無しさん
12/02/09 05:02:59.69
信者にも自覚はあるんだな
URLリンク(python.matrix.jp)


513:デフォルトの名無しさん
12/02/09 07:59:35.59
MLもHaskellも素晴らしいが
Rubyはうんこだろ

514:デフォルトの名無しさん
12/02/09 08:14:27.47
RubyかPythonか迷ってたけど、このスレ見てたらPythonをやりたくなってきました

515:デフォルトの名無しさん
12/02/09 08:18:59.66
いやっいやっいや
Rubyだろ女子高生的に

516:デフォルトの名無しさん
12/02/09 08:38:05.26
Rubyは信者がキモイ

517:デフォルトの名無しさん
12/02/09 08:38:55.11
>>514
このスレ的には「両方やっとけ」じゃね?

518:デフォルトの名無しさん
12/02/09 08:40:52.35
両方やるのが一番無意味

519:デフォルトの名無しさん
12/02/09 09:01:40.92
だが敵を知らずには戦えまい

520:デフォルトの名無しさん
12/02/09 09:05:43.90
「二兎追うものは一兎をも得ず」って言うじゃん
「虻蜂取らず」って言うじゃん

521:デフォルトの名無しさん
12/02/09 09:07:09.27
豚にPerl

522:デフォルトの名無しさん
12/02/09 09:13:30.89
蛇(Python)に睨まれたPerl

523:デフォルトの名無しさん
12/02/09 11:45:36.66
>>514
沢山の人がPythonをやりたくなって始める一方、やはり沢山の人が見限って去っていく。
トレンドは去る方。

524:デフォルトの名無しさん
12/02/09 12:45:43.93
Pythonのユーザ数が今のRubyくらいになる頃には
Rubyは消滅してそうだけどね

525:デフォルトの名無しさん
12/02/09 12:50:32.86
いや意味がわからない

526:デフォルトの名無しさん
12/02/09 13:06:16.03
Ruby信者は英語が読めない書けないで
日本語情報のあるRubyしか使えないだけ
本当に憎いのはPythonじゃなくて英語

527:デフォルトの名無しさん
12/02/09 13:39:11.30
pythonの方がrubyよりもライブラリ多いって話は聞くな
世界で人気なら、世界中でライブラリ開発されるんだから、そりゃそうだ。と思ったが


528:デフォルトの名無しさん
12/02/09 13:54:13.62
ライブラリを書いても言語のバージョンアップについて行かないといけないし、
どこからどこまでのバージョンをサポートするか、という観点もある。

529:デフォルトの名無しさん
12/02/09 14:43:08.70
ウェブはデパートのようなもの。もうすぐ死に絶える。
当然、ウェブ系言語も死に絶える。

530:デフォルトの名無しさん
12/02/09 15:17:22.11
そのまえに2ちゃんねるがなくなるべき

531:デフォルトの名無しさん
12/02/09 18:54:01.60
今後、リアルタイムでの処理が求められるようになると
遅いLL言語では問題な気がするのですが大丈夫なのでしょうか?
解決策はあったりしますか?

532:デフォルトの名無しさん
12/02/09 18:56:58.22
リアルタイムというのは速い遅いじゃない

以上

533:デフォルトの名無しさん
12/02/09 19:22:40.78
>>532
minecraftなどのオンラインゲームのサーバーはC++が主流らしいですがLLでも可能でしょうか?


534:デフォルトの名無しさん
12/02/09 19:41:14.13
リアルタイムは可能だろ。
それより通信速度に左右される。
アクセスが集中したときに捌けるかは別問題。

535:デフォルトの名無しさん
12/02/09 19:47:45.30
wikipediaやFreeBSDなど、luaの株価はじわじわと上がっている
5年後の主流は静的片付けの関数型とlua.c/c++。
.netやjvmは死に体


536:デフォルトの名無しさん
12/02/09 20:15:24.73
C言語で1ms以内で終わる処理が、5~10ms掛かったところで単独で見たら体感しては判らない。
円周率計算とかCPUを使い切るようなものでは10倍時間掛かっては遅さが体感できるが。

537:デフォルトの名無しさん
12/02/09 20:24:08.43
関数型とC++はいったい何に便乗しているのか

538:デフォルトの名無しさん
12/02/09 20:26:35.32
建国記念の日特番「天皇とは何か?」東浩紀×猪瀬直樹
URLリンク(live.nicovideo.jp)

【会場のご案内】
2012/02/11(土) 開場:19:50 開演:20:00


「建国記念の日」とは、
建国をしのび、国を愛する心を養う「国民の祝日」。

この日はかつて、
『日本書紀』が伝える初代天皇である
神武天皇即位の日とされた「紀元節」という祝日でした。
戦後、紀元節は廃止されるも、
1966(昭和41)年には国民の祝日として復活しました。

憲法では、
日本国と日本国民統合の「象徴」と規定されている「天皇」。
その地位は、主権者たる日本国民の総意に基づき、
国政に関する権能を全く有さないはずの「象徴天皇制」。

しかし、天皇をめぐる状況は、
日本人のアイデンティティーの探求とも絡み合い、
常に政治、社会、文化的な争点であり続けています。

そこで、ニコニコ生放送では、この建国記念の日に
あらためて、天皇とは何かを考えます。

出演は、東京都副知事の猪瀬直樹氏と、
批評家・作家、『思想地図β』編集長の東浩紀氏。
司会進行は週刊朝日の山口一臣氏です。


539:デフォルトの名無しさん
12/02/09 21:59:14.15
>>510
>RubyがなかったらPython Railsができていたと思うよ

革新的な発明/発見/発想に対して、後になってから
「あんなのは俺にだってできた」と語るのは三流の証(あかし)

540:デフォルトの名無しさん
12/02/09 22:11:56.78
どこに俺に出来たなんて書いてあるんだよメクラ

541:デフォルトの名無しさん
12/02/09 22:15:42.57
>>540
文盲かよ
ポイントは仮定の話なら負け犬の遠吠えはいくらでもできるってとこだろ

542:デフォルトの名無しさん
12/02/09 22:16:41.55
じゃあRuby信者が何を言ってもそれは負け犬の遠吠えになるじゃないか

543:デフォルトの名無しさん
12/02/09 22:25:06.06
>>500
前スレの関数型プログラミングの議論の中で比較対象となった例題コードは、
条件分岐と反復という極めて単純なコードだ
それにもかかわらず、Pythonでは可読性の悪いコードしか書けなかったから、
「Pythonは関数型プログラミングに適していない」という結論になった
従って、トリッキーで扱いづらいという烙印を押されたのはPythonではないのかな

それとも、>>500は関数型言語/同プログラミングそのものを
「現実問題として扱いにくいパラダイムである」と否定したいのだろうか?

544:デフォルトの名無しさん
12/02/09 22:27:27.59
>>542
負け犬の遠吠えとはZopeのこと?w

545:デフォルトの名無しさん
12/02/09 22:31:42.01
>>539
RubyがなかったらDHHが作ったのはPython Railsだったと思うよ
って言った方がいい?

546:デフォルトの名無しさん
12/02/09 22:32:44.46
>>543
前スレ知らんのでコード貼って

547:デフォルトの名無しさん
12/02/09 22:34:54.79
このスレみている限りじゃ、Pythonって癖強そうだよね。
JavaとかC#使っている人だと Ruby のほうが良さそう。


548:デフォルトの名無しさん
12/02/09 22:38:44.52
Java、C#、C++などC言語ファミリーはPHP

549:539
12/02/09 22:43:52.61
>>540
>>539内にある「俺」とは、別に>>540を指している訳ではない

アイデアそのものは単純であっても、それを最初に見つけることが大切であるということ

550:デフォルトの名無しさん
12/02/09 23:30:38.28
>>545
横レスだけど、Pythonってクラスがオブジェクトじゃなくて
Rubyのようなメタプロはできないと理解してるんだけど違う?
(まだPython勉強したことないから詳しくないんだけど)
それだと、作れなくない?


551:デフォルトの名無しさん
12/02/09 23:31:19.34
>>RubyがなかったらPython Railsができていたと思うよ

に対して、

>革新的な発明/発見/発想に対して、後になってから
>「あんなのは俺にだってできた」と語るのは三流の証(あかし)

というのはつながらないと思うんだけど。

私じゃなくてDHHがRubyではない言語でRailsを作っていただろうということを
より明確にするために、

>> RubyがなかったらDHHが作ったのはPython Railsだったと思うよ

って書いたんだ。

だれが、どこで
「あんなのは俺にだってできた」と語っていると思ったの?
「だれが」「どこで」の2点を明確にしてレスしてよ
誰も語っていないことを、語ったかのように偉そうに~~と語るのは三流の証
って言ったの?メクラカス

552:デフォルトの名無しさん
12/02/09 23:33:51.71
>>550
Rubyと同じ実装方法ではRails作れないかもね
別の実装方法を考えるだけでしょ

Rubyと同じ実装方法でRailsを作らないと、
PythonでRailsを実装できないって考えた理由は?

553:デフォルトの名無しさん
12/02/09 23:43:40.40
>>545
仮定を元にした未来予測なら、のび太くんにもできる

・DHHがRailsの開発に着手した時点で、すでにPythonは存在した
・にもかかわらず、DHHはRailsの実装言語として(Pythonではなく)Rubyを選んだ、

というのが事実だ

のび太くん、もっと現実見なよ(AA略

554:デフォルトの名無しさん
12/02/09 23:45:52.50
>>552
もし表層的なIFだけ似たようなものを作るということであれば、
理論的には、どんな言語でも実装可能なんだろうなぁとは思ってるんだけど、
メタプロがないと、かなり実装が大変なことになるんじゃなかと思って


555:デフォルトの名無しさん
12/02/09 23:51:48.99
>>546
お題は、二分岐/多分岐/局所宣言の3つあって、
それぞれについてRuby/Standard ML/Haskell/Pythonでコードを示す

[二分岐]
==== Ruby: 前スレ>>682(上段) ====
 ys = xs.select { |x|
   if test
     if test_1 then test_1_1 else test_1_2 end
   else
     if test_2 then test_2_1 else test_2_2 end
   end
 }
==== Standard ML: 前スレ>>772 ====
 val ys = filter (
   fn x =>
     if test x then (
       if test_1 then test_1_1 else test_1_2
     ) else (
       if test_2 then test_2_1 else test_2_2
     )
 ) xs
(続く)

556:デフォルトの名無しさん
12/02/09 23:52:05.07
PHPはCに似てるっていう奴がいるけど動作がメタメタなんだよ。
よっぽど変態文法のPerlの方がCに近く感じる。

557:デフォルトの名無しさん
12/02/09 23:52:14.63
あーらら、話をずらしちゃった
反論できないのかね

>>504
> 以下の事実を忘れずに
> ・RubyがあったからこそRailsが生まれた

の「Rubyがあったからこそ」はおかしいと思って、
RubyがなくてもDHHはRailsを作っていたと思うよっていうために

>>545
> RubyがなかったらDHHが作ったのはPython Railsだったと思うよ
> って言った方がいい?

って書いたんだけど、最後の反論が

> ・DHHがRailsの開発に着手した時点で、すでにPythonは存在した
> ・にもかかわらず、DHHはRailsの実装言語として(Pythonではなく)Rubyを選んだ、

これか。
「Rubyがあったからこそ」っていうのは言い過ぎだと思うよって言いたいんだけど、
反論できる?知能障害起こさず続けれる?火病起こすようなら、もう止めるよ?

自分が何を言い出したかを無視して相手を貶めようと必死ですな

558:デフォルトの名無しさん
12/02/09 23:52:52.67
(>>555の続き)

==== Haskell: 前スレ>>767 ====
 ys1 = [x | x <- xs1,
     if test x then
       if test_1 then test_1_1 else test_1_2
     else
       if test_2 then test_2_1 else test_2_2
   ]
==== Python: 前スレ>>695(上段) ====
 ys = [ x for x in xs
     if (
       (test1_1 if test1 else test1_2) if test else 
       (test2_1 if test2 else test2_2)
     )
   ]

(多分岐に続く)

559:デフォルトの名無しさん
12/02/09 23:58:16.75
で、

だれが、どこで
「あんなのは俺にだってできた」と語っていると思ったの?
「だれが」「どこで」の2点を明確にしてレスしてよ
誰も語っていないことを、語ったかのように偉そうに~~と語るのは三流の証
って言ったの?メクラカス

560:デフォルトの名無しさん
12/02/10 00:00:27.07
Pythonは書き方が普通じゃないからキモくて普及しない

561:デフォルトの名無しさん
12/02/10 00:03:34.84
(>>558の続き)
[多分岐]
==== Ruby: 前スレ>>719 ====
 ys = xs.select { |color|
   case color
   when :green
     true
   when :yellow
     true
   when :red
     false
   else
     raise RuntimeError
   end
 }

==== Standard ML: 前スレ>>772 ====
 datatype Color = Green | Yellow | Red
 val ys = filter (
   fn x =>
     case x of
      Green => true
     | Yellow => true
     | Red => false
 ) xs
(続く)

562:デフォルトの名無しさん
12/02/10 00:04:56.67
(>>561の続き)
==== Haskell: 前スレ>>767 ====
 data Color = Green | Yellow | Red
 ys2 = [x | x <- xs2,
     case x of
       Green -> True
       Yellow -> True
       Red -> False
]


==== Python: 前スレ>>728 ====
 ys = (x for x in xs
     if {
       'green': True,
       'yellow' : True,
       'red' : False
     }[x]
   )
(局所宣言に続く)

563: 忍法帖【Lv=35,xxxPT】
12/02/10 00:05:30.63
割り込みの術
忍忍

564: 忍法帖【Lv=35,xxxPT】
12/02/10 00:06:05.80
忍忍

565:デフォルトの名無しさん
12/02/10 00:06:23.43
(>>562の続き)
[局所宣言]
==== Ruby: 前スレ>>710 ====
 ys = xs.map { |x|
   h = if x.first_page? then generate_header else nil end
   b = generate_body x
   f = if x.last_page? then generate_footer else nil end

   Document.new h, b, f
 }


==== Standard ML: 前スレ>>772 ====
 datatype 'a Option = None | Some of 'a
 val ys = map (
   fn x =>
     let
       val h = if is_first_page x then generate_header else None
       val b = generate_body x
       val f = if is_last_page x then generate_footer else None
     in
       (h, b, f)
     end
 ) xs
(続く)

566:デフォルトの名無しさん
12/02/10 00:07:47.10
(>>565の続き)
==== Haskell: 前スレ>>767 ====
 data Option a = None | Some a
 ys3 = [fn x | x <- xs3]
   where fn x =
     let
       h = if is_first_page x then generate_header else None
       b = generate_body x
       f = if is_last_page x then generate_footer else None
     in
       (h, b, f)


==== Python: 前スレ>>714 ====
 ys = (Document.new(h,b,f) for x in xs
   for h in [generate_header() if x.is_first_page else None]
   for b in [generate_body(x)]
   for f in [generate_footer() if x.is_last_page else None])
(これで終わり)

567:デフォルトの名無しさん
12/02/10 00:54:34.24
>>557,559
あーあ、これまでは冷静なカキコだったのに、ついには感情を爆発させちゃったのね....

>「Rubyがあったからこそ」っていうのは言い過ぎだと思うよって言いたいんだけど、

であるなら、それを>>545で書けばよかった
こちらはエスパーではないんでね
>>545の仮定を元にした主張は詭弁である、と言いたかったんだけど分かってもらえなかったようだ

もちろん>>504の「RubyがあったからこそRailsが生まれた」という意見は自分の主観であるけれど、
DHH自身はその著書の中で、
・Rubyのウリは簡潔さであり、アイデアを自然な形で表現できる
・Rubyのパワーによって、Railsの設計哲学であるDRYを実践している
と語っている
いずれにせよ、「DHHが(Pythonではなく)Rubyを選んだ」という事実に変わりはない

568:デフォルトの名無しさん
12/02/10 01:02:52.71
自分に都合の悪いことは見ようとしませんか

>>559>>551の最後をコピペしただけなんだけどね

やれやれ

569:デフォルトの名無しさん
12/02/10 01:40:13.03
実際にコード例出しての戦いは面白いな
あんまりないけど
昔あったマルコフ連鎖の実装合戦面白かった
偉そうなこと書いてるやつがコード実際に書くとぜんぜんダメだったり


570:デフォルトの名無しさん
12/02/10 01:41:51.39
マルコフ連鎖がダメって高卒かよ

571:デフォルトの名無しさん
12/02/10 01:49:59.27
そこまでは知らん

572:デフォルトの名無しさん
12/02/10 02:03:06.89
デバッグの補助だと、bash,awk,sedあたり。
日常的に使わざるをえないならば、構文糖衣の多いperlがいい
下手にグルーだとかウェブ系だとかドメインを広げるとかえって使い勝手が悪い件

573:デフォルトの名無しさん
12/02/10 02:20:19.58
>>567
>いずれにせよ、「DHHが(Pythonではなく)Rubyを選んだ」という事実に変わりはない

DHHは自分で積極的にRubyを選んだというよりは、達人プログラマーたちに
勧められたからRubyを選んだだけ。本人がそう言っている。

ただ、PythonでもRailsが生まれたかというと、そうは思わない。
1.years.ago みたいに組み込みクラスを拡張しまくるのはPythonではできないし、
PythonにはRubyのブロックがないからDSLの設計が大きく制限される。
だから自由度の高いRubyならRailsみたいな尖ったフレームワークが作れるけど、
Pythonだとおとなしいのしかできないから、世界を席巻するようなブームは起こせなかったと思うよ。
それを考えると、>>557
> ・RubyがあったからこそRailsが生まれた
は、わりと当たってる。
そういう意味では、Zopeが世界を取れずに失速したのは、RubyじゃなくてPythonだったからと言えなくもない。

という回答でいいかな?>>552



574:デフォルトの名無しさん
12/02/10 02:46:22.32
Pythonでメタプロ出来ないと思ってる人がいるみたいだけど
なんでそう思うに至ったのかの経緯に興味あるな
池沼かもな

575:デフォルトの名無しさん
12/02/10 05:29:46.32
その辺の経緯は何度か紹介されてるから
ぐぐれば出るはず……と思ったら出た
いくつか検討したが、Rubyが一番しっくり来たという話らしい

URLリンク(gihyo.jp)

576:デフォルトの名無しさん
12/02/10 08:05:09.60
>>566
コピペありがとう。

ぶっちゃけ殆ど差が無い気がするけど、なんで

> 条件分岐と反復という極めて単純なコードだ
> それにもかかわらず、Pythonでは可読性の悪いコードしか書けなかったから、
> 「Pythonは関数型プログラミングに適していない」という結論になった

って結論になったん?

577:デフォルトの名無しさん
12/02/10 08:29:46.36
>>574 おまえが池沼かもな

578:デフォルトの名無しさん
12/02/10 08:34:45.07
>>575
ただの一個人、しかも変人、の意見じゃん。しょぼ

579:デフォルトの名無しさん
12/02/10 08:37:48.75
>>576
Pythonの3項演算子ifや内包表記のfor/inは
英語が読める人には自然に読めるが、
英語に不自由でifやforをプログラミング言語でしか
使わない人には奇妙に見えるらしい

580:デフォルトの名無しさん
12/02/10 08:46:48.66
>>579
そーゆー問題じゃねえんだよあの三項演算子は…

そもそも、複雑に入り組んだ文を書くと
Python含めてどのプログラミング言語も
英語的になんて読み下せないワケで
だったら英語的である必要性は薄い

581:デフォルトの名無しさん
12/02/10 08:49:58.26
そんなのばっかり書いてるから平日のこんな時間に
2chしてるんだよ。。。

582:デフォルトの名無しさん
12/02/10 09:09:40.28
pythonの三項演算子はむしろ書く時に頭を使わなくて良い
Cのような書き方に慣れてる人は、単に慣れだけで批判してるんだろうけど
そもそもCの三項演算子は if-then の順じゃないから不自然

583:デフォルトの名無しさん
12/02/10 09:16:41.40
いやif-thenの順と言うとおかしいか。でも特にネストして書く時はpythonの方が思考の流れ的には自然
Cは条件が先行してるから : の後ろが結果なのか条件なのか決まってなくて
(結果):(結果)になったり(結果):(条件)になるのは気持ち悪い

584:デフォルトの名無しさん
12/02/10 09:19:24.56
値が先行して、その後ろが常にその値に対する条件になってる方が分かりやすい、と言いかった

585:デフォルトの名無しさん
12/02/10 09:40:03.97
どっちも不自然だろ

haskellみたいに、ifが式ならそれでいいのに

586:デフォルトの名無しさん
12/02/10 09:44:43.28
内包表記はリスト(集合)を辿るだけだし読みやすいと思うが

587:デフォルトの名無しさん
12/02/10 09:49:32.59
>>573
>ただ、PythonでもRailsが生まれたかというと、そうは思わない。
>1.years.ago みたいに組み込みクラスを拡張しまくるのはPythonではできないし、
>PythonにはRubyのブロックがないからDSLの設計が大きく制限される。

ここは同意。Railsを作れるのは、Ruby以外ならLispかSmalltalkぐらいかな。
決まりきった書き方しか許さないPythonじゃ難しいと思う。

>だから自由度の高いRubyならRailsみたいな尖ったフレームワークが作れるけど、
>Pythonだとおとなしいのしかできないから、世界を席巻するようなブームは起こせなかったと思うよ。

RoRが世界を席巻したのは事実だけど、それは技術的な要素より偶然の要素が大きいと思うなあ。
つまりは運がよかった。

と、Zope使いが負け惜しみを言ってみる。なんでZopeは世界が取れなかったんだよクソ!

588:デフォルトの名無しさん
12/02/10 09:49:46.95
>>583
ネストして書く時はインデントだろ・・・
インデント強制までしたのに何やってんだよ

589:デフォルトの名無しさん
12/02/10 09:51:07.99
>>588
Cみたいなのは改行インデントしないと分かりにくいってことだろ
pythonはどっちでもいい

590:デフォルトの名無しさん
12/02/10 11:58:00.93
英語に不自由なRuby使い可哀想

591:デフォルトの名無しさん
12/02/10 13:28:19.02
英語が不自由でも使えるに越したことはないだろ
だってここは言語の使い手を比べるスレじゃなくて
言語そのものを比べるスレなんだぜ?

592:デフォルトの名無しさん
12/02/10 13:29:52.62
自然言語の話を当て嵌めようとしても無理があるでしょ

593:デフォルトの名無しさん
12/02/10 13:36:28.62
技術者なのに英語も読めないカスの意見など
聞くに値しない

594:デフォルトの名無しさん
12/02/10 13:56:37.57
技術者なら英語くらい読めて欲しいが
PythonもRubyもエンドユーザを考慮した言語だと思うぞ

595:デフォルトの名無しさん
12/02/10 14:37:40.87
>>574
>Pythonでメタプロ出来ないと思ってる人がいるみたいだけど

だれもそんなこと言ってないと思うけど。
#Rubyと比べるとできることに限りがあるのは事実だとしても。

なんでそう思うに至ったのかの経緯に興味あるな
池沼かもな


596:デフォルトの名無しさん
12/02/10 15:04:36.43
>>577
その変人という評価は、彼にとっては最大限の賞賛に等しいと思われる

変人だからこそ、周囲の常識的には人々が考えもつかなかった革新的なアイデアを考案し、
それをRails実現という形で行動に移すことができた

597:デフォルトの名無しさん
12/02/10 16:21:31.32
>>593
それで、Pythonって日本語使えるのかい?

598:デフォルトの名無しさん
12/02/10 18:18:28.50
てめーら中学生レベルの英語もよめねーのかよ

単語がわかんなかったらググれカスども!

599:デフォルトの名無しさん
12/02/10 18:26:49.17
勝ち馬に乗るべき
マイナー単語は使うべきではない

600:デフォルトの名無しさん
12/02/10 18:44:15.30
>>599
つまり、英語もどきでプログラミングしろ、と。

601:デフォルトの名無しさん
12/02/10 19:25:23.73
プログラムの可読性が低いと感じるとき、
自分が英語を読めないカスだから読み難く感じるのかもしれないという
可能性を考慮した方が良いよ

602:デフォルトの名無しさん
12/02/10 19:27:38.65
よし、Pythonsitaは今後英語でカキコしよう。

603:デフォルトの名無しさん
12/02/10 19:59:59.45
>>602
I'm very sorry.
I was completely forgetful of the fact that 
Ruby programmers in Japan CANNOT read English.
I didn't intend to humiliate you.

604:デフォルトの名無しさん
12/02/10 22:29:37.03
>>603
必死だな。そんなにRubyとRubyistを貶めたいのか。
何がPython信者をそこまで必死にさせるのだろう。
PythonじゃRailsは生まれなかったと言われたことが、そんなに気に食わなかったのか。


605:デフォルトの名無しさん
12/02/10 23:25:47.62
>>604
OK. I know why you hate Python so hard.
You can learn a programming language only when
there's detailed documentation in Japanese,
but Python doesn't provide it.
However, this fact implies that you can't compare
programming languages in an equitable manner,
because your prejudices come from your English skills.

You seem to hate Python, but actually you do hate English.

606:デフォルトの名無しさん
12/02/11 00:21:11.69
頭デッカチなだけのボンクラ野郎どもの会話は、くだらねーし、つまんねー

607:デフォルトの名無しさん
12/02/11 00:56:59.09
>>582
それはそれで英語の書き方に慣れてるからというだけでCのような書き方を批判してない?

608:デフォルトの名無しさん
12/02/11 01:24:15.30
>>607
ちゃんと後のレス読めよ

609:デフォルトの名無しさん
12/02/11 01:27:54.61
>>597
特に日本ではZope信者がRuby信者以上にキモい

610:デフォルトの名無しさん
12/02/11 01:29:46.44
>>595
くやしかったんですね
わかります

611:デフォルトの名無しさん
12/02/11 01:32:16.31
pealとかrubyを好むプログラマは暗号のようなコードを美しいと思っちゃうから話にならない

612:デフォルトの名無しさん
12/02/11 01:33:44.73
便利な言い訳だな

客観的な指標で比較しないと意味ないやん

613:デフォルトの名無しさん
12/02/11 01:35:45.51
英語がどうのと言っている人はRSpecはいいと思ってる?
自分は、そこ頑張らんでもと思っちゃって。


614:デフォルトの名無しさん
12/02/11 01:38:35.67
いやだからさー、pythonは客観的に読みやすいって常識だろ?
pythonよりperl/rubyが読みやすいって奴いるの?

615:デフォルトの名無しさん
12/02/11 01:42:06.24
>>614
心の中でそう思うのは自由だが、説得力はない

616:デフォルトの名無しさん
12/02/11 01:42:55.81
>>608
すまん読んでなかった
頭の方だけ読んで分かった気になるのは良くないね

617:デフォルトの名無しさん
12/02/11 01:45:51.68
いや、pythonが読みにくいと言ってる奴を見たことがない

618:デフォルトの名無しさん
12/02/11 01:50:19.97
>>617
例えば「いや~Pythonは読みやすいけど、Rubyの方がもっと読みやすいよ」
っていう誰かがここに出現したらどうするんだよ
オレが思うからPythonは客観的に読みやすい、なんていう主観的な主張を続けるのか?

619:デフォルトの名無しさん
12/02/11 01:53:56.00
>>618
俺の意見じゃなくて一般論の話をしてるんだけど
読みやすいとかは数値化しずらいだろうが
どう見ても大多数の意見がそうなってるだろ

620:デフォルトの名無しさん
12/02/11 01:57:16.98
>>605
Pythonは日本語のドキュメントあるよ。それも十分detailedなのが。
URLリンク(www.python.jp)

> but Python doesn't provide it.
なんていったら、翻訳してくれた人たちに失礼すぎる。

なんでそう思うに至ったのかの経緯に興味あるな
池沼かもな

621:デフォルトの名無しさん
12/02/11 01:57:19.38
>>576
3つに分けて返答するよ
[二分岐(>>555,558)]
・すでに指摘されているけど、Pythonのif式の構文は特異/異常なもの
 自分の知る限り、<then> if <cond> else <false> という
 構文を採用しているのはPythonだけ
・直感的に、Pythonの構文はフローチャートやPAD等の分岐図と一致しない
 特にこのような分岐がネストする場合には、それが顕著になる
 コード全体の構造を見れば、Pythonだけが異質なのは明白
[多分岐(>>561,562)]
・Pyhtonには多分岐式が存在しないため、ハッシュを用いた
 「トリッキー」なコードを書かなければならない
・もちろんRubyでもハッシュによる同様なコードを書けるが、
  ・ハッシュを使わなければ書けないPythonと
  ・ハッシュを使っても使わなくても書けるRubyとの間には
 表現力に雲泥の差があるのは明白
[局所宣言(>>565,566)]
・Ruby/ML/Haskellの間には
 それぞれメソッドチェーン/高階関数/リスト内包表記という差異はあるが、
 それ以外の全体的なコード構造に関しては類似性がある
・異質なコードはPythonだけであり、
 これはPythonに局所宣言(ブロック/let式/where節)が存在しないことに起因する

これらから「Pythonは関数型プログラミングには適さない言語である」という
結論に至った


622:デフォルトの名無しさん
12/02/11 01:58:53.48
関数型プログラミングに適した言語なんて一般的には全然好まれてないじゃん

623:デフォルトの名無しさん
12/02/11 01:59:07.22
>>619
>どう見ても大多数の意見がそうなってるだろ

それが主観的ってことでしょ。
主観的でいいなら、「Pythonの内包表記よりRubyのメソッドチェーンの方がわかりやすい」と思う人は多数いるよ。

624:デフォルトの名無しさん
12/02/11 02:01:05.67
>>619
そ、そうか。カンファレンスでアンケートでも取ったのか?

625:デフォルトの名無しさん
12/02/11 02:01:23.67
>>623
だから何?pythonがrubyより読みやすいのは事実だろ。何を否定したいのか分からん
rubyがpythonより読みやすいのなら、なんで「関数型プログラミング」にも適したrubyがpythonに負けてるわけ?

626:621
12/02/11 02:04:00.13
>>621の[二分岐(>>555,558)]への補足として、
前スレでのPythonの異質さに関する解説をコピペする

>711 名前: 682 Mail: sage 投稿日: 2011/12/29(木) 15:05:28.17
>>>695のPythonコードが読みづらい原因はif演算子の構文にある
>条件判定が式である言語に限定して、それらの構文を比較してみる
>
>Ruby:
>  if 条件式 then 式1 else 式2 end
>Smalltalk:
>  条件式 ifTrue: [ 式1 ] ifFalse: [ 式2 ]
>Lisp:
>  ( if 条件式 式1 式2 )
>ML:
>  if 条件式 then 式1 else 式2
>Haskell:
>  if 条件式 then 式1 else 式2
>
>Python:
>  式1 if 条件式 else 式2
>
>普通の言語は「条件式 -> 式1 -> 式2」と左から右へ流れる(それが自然)
>それに対して「Pythonだけ」は「式1 <- 条件式 -> 式2」と
>左へ右へと行ったり来たりしないとコードが読めない
>
>プログラミング言語界の中で「Pythonだけ」が異端な存在で、可読性の悪い構文が採用されている
>これは明らかにPython開発陣の言語設計ミス、あるいは判断ミスだね

627:デフォルトの名無しさん
12/02/11 02:08:44.16
>>626
お前その711の言ってることに賛成なの?
異端という言葉を使って一生懸命印象誘導してるけど、アホにしか見えない
こいつが自然と言ってるのは、それがCに似てるからに過ぎない
式に条件が後続する書き方が明らかに好都合

628:デフォルトの名無しさん
12/02/11 02:16:01.85
>>627
>式に条件が後続する書き方が明らかに好都合

個人的には理解不能
伝統的なif文(あるいはif式)に対して
どういう利点があるのかさっぱり分からん

629:デフォルトの名無しさん
12/02/11 02:20:38.02
まず一番左をみて条件式があるというのが気持ち悪い
hoge = 条件式~ って条件式が長かったら右辺値がどんな値になるのか分かんねえじゃん
結局先に後ろを見てそれで条件式を見直すことになるだろ

630:621
12/02/11 02:20:45.94
Pythonは英語風だから読みやすいという意見があるけど、本当だろうか?

  日本語:もし C であれば T さもなければ F。
   英語:If C then T, else F.
 ルビー語:if C then T else F
バイソン語:T if C else F

631:デフォルトの名無しさん
12/02/11 02:27:29.52
if文を読むときに

ifが先頭・・・ああ、次の場合条件によって①か②のどちらかを実行しなさいってことね
ifが後ろ・・・ああ、①を実行するのね――っと思ったら例外ありかよ!

みたいな感じ、個人の感覚としては




632:621
12/02/11 02:28:04.76
>>627
「世界中の皆が使っているからPythonを使うべき」という主張は、
Python信者の理屈ではなかったのかな?

同じ理屈を当てはめると、条件式に関して異端なのはPythonのほうになるけど、
違うん?

633:デフォルトの名無しさん
12/02/11 02:30:34.29
>>632
意味不明。どの理屈がどうだって?

634:デフォルトの名無しさん
12/02/11 02:30:58.26
>>631
英語全く読めないでしょ?

635:デフォルトの名無しさん
12/02/11 02:36:43.79
>>634
ああ、結局分かりやすさではなく英語に慣れてるかどうかの問題?

636:デフォルトの名無しさん
12/02/11 02:37:37.60
>>630
英語:T if C. Otherwise, F.
python:T if C else F

637:デフォルトの名無しさん
12/02/11 03:15:57.25
Pythonを分かりやすいと感じる理由を自分の理屈で持って解釈して主張する人もいれば
単に俺は英語に慣れてるから英語に近いPythonは英語に慣れてる分わかりやすいんだと、
突き詰めればそういうことにしかならない人もいるらしい、と、そんな感触

638:621
12/02/11 03:38:05.29
>>631
Python信者の理屈とは「みんなが使っていれば、それは正しい」だろ
>>626のコピペを見れば、

 みんなが採用しているのがif <cond> then <true> else <false> であり、
 それは正しい

という帰結になるのは猿でも分かるよな?

639:621
12/02/11 03:40:46.63
>>636
>>630は二分岐に関する「Pythonは英語風」に対する疑問であったけれど、
>>636へのレスに代えて、今度は別の切り口で疑問を提起してみる

まず、英語風(=自然言語風)というよりも、これは
「数学における定義と似ている」と言い換えた方が適切だろう
たとえば、[多分岐(>>561,562)]を数式として記述すると以下のようになる

 f(X) = T, if X is "Green"
    T, if X is "Yellow"
    F, otherwise

確かにこれは、Pythonの <true> if <cond> .... という構文と似ている
実際Haskell文化では、>>562(上段)よりも以下のような数式風のコードが好まれる

 f x
   | x == "Green" = true
   | x == "Yellow" = true
   | otherwise = false


では、自分はPythonに詳しくないので、>>562(下段)のコードを書き直してみてくれ
Pythonが英語風で関数型プログラミングにも適しているのなら可能なはず(他の人でもいい)

論よりコードだ

640:デフォルトの名無しさん
12/02/11 03:47:38.01
後置ifは、他言語にもあるから別に変でも何でもない。

lenの方がよっぽどきもい。
__len__とか勘弁して欲しい。

641:デフォルトの名無しさん
12/02/11 03:48:02.98
if <cond> then <true> else <false>
が判り易いなんて思い込みだろ
<true> if <cond> else <false>
の方がシンプルで良いじゃん

っていうか何で「ただの値を返すだけの記号」だと思えないんだろう

642:デフォルトの名無しさん
12/02/11 03:50:50.25
>>640
同意

Python 始めて間もないとき
"hoge".len() とか
"hoge".length() とか
期待した結果が得られないのでめっちゃ悩んだ
len("hoge") なんてインチキというか目から鱗というか
C やってたら当たり前なんだろうけど
Ruby しか知らない人には習得は厳しい言語かもしれないな


643:デフォルトの名無しさん
12/02/11 04:08:42.78
>>640
他言語にもあるのかよ。>>621に騙されちゃった

644:デフォルトの名無しさん
12/02/11 04:13:37.65
lenという関数もその名前も別に不満はないが
なぜ文字列やリストオブジェクトのメソッドが__len__なのかは確かに理解出来ない
結局は関数のlenしか使わない

645:621
12/02/11 04:21:48.61
>>640
>後置ifは、他言語にもあるから別に変でも何でもない。

それは話のすり替えだよ
後置if はRubyや他の言語にもあるけど、それらはすべて(式ではなく)文だ
分岐式としてのif構文が後置なのはPythonだけで、それは異端だというのが>>626のコピペ

>>__len__とか勘弁して欲しい。

だよな
__init__ とか勘弁して欲しい

646:デフォルトの名無しさん
12/02/11 04:25:14.17
Cやっててもきもいよ。
ほかは、メソッドになってるのになんでこれだけ関数なんだ。
どっちかに統一してほしい。



647:デフォルトの名無しさん
12/02/11 04:25:25.24
>>639
誰が、pythonが関数型プログラミングに適してるって?
なぜか、関数型プログラミングに適してるほうが勝利という前提で話を進めているけど
それは初めから詭弁だし、お前の文章自体が何かごちゃごちゃしてるのも、その特殊な脳内を表しているの?

よくpythonスレでもリスト内包にlambda式突っ込んでごちゃごちゃやってる人いるけど
無理せずに外に関数として定義してやれば何倍もスッキリするし、そうするべきだと俺は思ってるけど
lambda式自体は使うべきだけど無理して使う必要ない。読む方にも迷惑

648:621
12/02/11 04:26:04.90
>>641
シンプルで良いのなら、>>639で希望したように、
ぜひ極めてシンブルな多分岐処理に対する>>562(下段)のトリッキーなPythonコードを
シンプルで美しいコードに書き直してくれ

繰り返すけど、論よりコードだ

649:デフォルトの名無しさん
12/02/11 04:31:31.50
__init__や__main__は特殊な関数と明示してるから嫌いじゃない
__len__は別に特殊である必要がない

>>648
他のコード見ても何をやりたいのか分からん

650:621
12/02/11 04:36:57.63
>>647
>誰が、pythonが関数型プログラミングに適してるって?
>なぜか、関数型プログラミングに適してるほうが勝利という前提で話を進めているけど

それは「Pythonは関数型プログラミングに適していない」という意見への賛同として
解釈してよいのかな?

>よくpythonスレでもリスト内包にlambda式突っ込んでごちゃごちゃやってる人いるけど
>無理せずに外に関数として定義してやれば何倍もスッキリするし、

まったくそのとおりだと自分も思う
実際、>>566(上段)のHaskellコードは、リスト内包表記内にあるごちゃごちゃしたコードを
where節を使うことで無理にせずスッキリした読みやすいものになっている
>>565のRubyやMLは内包表記ではないけれど、それぞれブロックとlet式を使ってスッキリしている
それに比べて、>>566(下段)のPythonコードはなんともごちゃごちゃした汚いコードだよね

え、Pythonって外で関数定義しないとスッキリさせることができないの?
いったい何のためにラムダ式(無名関数)があるんだろう.....


651:デフォルトの名無しさん
12/02/11 04:39:30.69
>>650
お前がスッキリと言ってるものがどんな処理をしてるのか分からないから説明してくれよ

652:デフォルトの名無しさん
12/02/11 04:41:17.23
>>650
関数型プログラミングには適してないんじゃね。望まれてもいないし

653:621
12/02/11 04:56:47.53
>>648
>他のコード見ても何をやりたいのか分からん

まあ他の言語のコードが読めない、つまりPythonしか知らないのならしかたないなぁ....

というか、他の言語の経験があって、その上でPythonがイイ!と言えるヤシはいないの?


>>651
Python(>>566下段)
 リスト内包表記内にごちゃごちゃしたコードを書かざるを得ない

Haskell(>>566上段)
 リスト内包表記内のコードを(where節で)外に追い出しているからスッキリしている

654:デフォルトの名無しさん
12/02/11 04:58:15.29
>>653
お前もpythonのこと知らないって言ってんじゃん
実際明らかにそうだし
数学的にって
f(X) = T, if X is "Green"
    T, if X is "Yellow"
    F, otherwise

def f(x):
  return True if x=="Green" \
  else True if x=="Yellow" \
  else False
こうだろ。何をさせたいのかさっぱり分からん

655:デフォルトの名無しさん
12/02/11 04:59:50.43
>>645
まぁ、そういわれればpythonは異端かもなぁ。

if構文は改行しないとダメだし、演算子の方は後置を強制されるから統一感がないね。
ifをワンライナーで書けるか、演算子が前置できればいいのかも。

LLの中じゃ、pythonは嫌いじゃないけど、ところどころキモくてもどかしいところあるよ。

656:デフォルトの名無しさん
12/02/11 05:05:00.80
>>639
Prologだと、

f(X) :- 'Green'(X).
f(X) :- 'Yellow'(X).

これはこれで多大なコストが掛かっているけど。

657:621
12/02/11 05:06:52.02
>>652
了解した
もしそれがPython支持派の総意であるなら、これ以上はバトルスレで語る事柄ではないと思う
この話題は終わらせてもいいだろう

658:デフォルトの名無しさん
12/02/11 05:08:50.13
逃げんなよ。関数型プログラミングで言語の優劣が決まるのなら
関数型言語の今の惨状は無い

659:デフォルトの名無しさん
12/02/11 05:11:14.38
>>656 if ~ then ~ else ~ の場合はカットが必要なのでは? f(X) :- 'Green'(X),!. f(X) :- 'Yellow'(X).

660:621
12/02/11 05:11:53.34
>>654
あ、スマン、>>653のカキコ内にあるアンカが間違っていた
訂正する

X: >>566
O: >>562

661:621
12/02/11 05:14:10.19
>>658
逃げる気はないよ
Python信者が関数型プログラミングの議論を続けたいなら、こちらも望むところだ

662:デフォルトの名無しさん
12/02/11 05:17:26.60
単純に学習コストだな。受け入れやすさ。
簡単に使えるようになって、やりたいことが出来るのならそれで問題ない
そうやって皆が使えば資料もライブラリも充実して、さらに学習コストが下がる

関数型プログラミング必須なんて有り得ないし
それで出来上がった「スッキリ」と言われるコードは意味不明だし
やはり一生普及しないだろうと実感した

663:デフォルトの名無しさん
12/02/11 05:34:35.58
>>648
Pythonが特別トリッキーだとは思わないな
いまどきのjavascriptっぽくて好感が持てる

664:656
12/02/11 05:35:19.42
>>659
すみません。間違えました。

f('Green').
f('Yellow').

ですね。カットを入れるかどうかは迷います。Xがどこかに行ってしまいました。
これが嫌なら、

f(X) :- 'Green'==X.
f(X) :- 'Yellow'==X.

かな。

665:621
12/02/11 05:38:05.42
>>654
その文末にある醜い¥記号は何?
Cのマクロ定義なら分かるけど、なんでそんな記号を使わないとならんのだろ
インデント強制のPythonなら、(Haskellのように)インデントで書けないの?

あと、そのコードは未完成
その関数定義をラムダ式にして>>562の(ハッシュを使った)トリッキーなコードを書き換えてほしい

666:デフォルトの名無しさん
12/02/11 05:43:26.06
javascriptで思い出したけど、
なにげに,CoffeeScriptがすごくよさそうだと個人的には思う。


667:621
12/02/11 05:43:37.11
>>663
トリッキーであることそのものは批判していないよ

最初に以下の>>621で書いたように
>・もちろんRubyでもハッシュによる同様なコードを書けるが、
>  ・ハッシュを使わなければ書けないPythonと
>  ・ハッシュを使っても使わなくても書けるRubyとの間には
> 表現力に雲泥の差があるのは明白

Pythonが(ハッシュを使った)トリッキーなコードでしか表現できないことを問題視している

668:デフォルトの名無しさん
12/02/11 05:49:36.48
(lambda x: x in ["Green", "Yellow"])で良いんじゃね

669:デフォルトの名無しさん
12/02/11 05:50:30.20
ああ、問題を解決できてもダメなのか、関数型プログラミング至上主義的には

670:デフォルトの名無しさん
12/02/11 05:55:27.43
関数型言語とか関係なくダメだと思うよ
というかPython的にすらダメじゃないの

671:デフォルトの名無しさん
12/02/11 05:56:56.45
なぜ?"Green"か"Yellow"なら真、それ以外なら偽じゃないの

672:デフォルトの名無しさん
12/02/11 06:06:43.50
トリッキーだと思わないと言っているのに
>トリッキーであることそのものは批判していないよ
とか論点逸らしひどす

673:デフォルトの名無しさん
12/02/11 06:08:18.97
最初から詭弁による話題誘導しかしてないよ。一番最初から

674:デフォルトの名無しさん
12/02/11 06:22:32.10
お前ら、Scala使えよ
実用的な関数型言語だ
RubyとかPythonとかどうでも良くなるよ。

675:デフォルトの名無しさん
12/02/11 06:25:34.79
ScalaはJava臭が残ってるから好きじゃない

676:デフォルトの名無しさん
12/02/11 06:29:27.42
RubyからScalaに乗り換えた15くらいの理由
URLリンク(wota.jp)


677:デフォルトの名無しさん
12/02/11 06:34:58.63
まずはスレタイに Scala 入れてからだな

678:デフォルトの名無しさん
12/02/11 06:40:43.46
Rubyはいらんだろ

679:621
12/02/11 06:46:38.64
>>673
詭弁であると思うのなら、その時点で(=一番最初に)指摘すればいい
たとえば>>539では、>>510の主張が仮定を元にした詭弁であると即座に反論している
議論が進行してしまってから「一番最初から」うんぬん言うのは、
バトルスレでは自ら敗北を宣言したに等しい

では、>>643を添削しておこう

X: 最初から詭弁による話題誘導しかしてないよ。一番最初から
O: もうこれ以上は技術的な議論しても勝てそうにないので、印象操作しかできません(涙声

680:621
12/02/11 06:55:09.24
>>672
>トリッキーだと思わないと言っているのに

あっそうか、Python(>>562下段)しか知らない蛙さんだったのね
ならばしかたないな....

Ruby(>>561上段)/ML(>>561下段)/Haskell(>>562上段)のコードが読める人なら、
単純にcase...という多分岐構文を使うだけなのに、
ハッシュを使わないと書けないなんてPythonとは変というか不自由な言語だなあって思うよ

681:デフォルトの名無しさん
12/02/11 07:05:58.33
ん?
異質=トリッキー
だと思ってる馬鹿?

682:デフォルトの名無しさん
12/02/11 07:22:44.59
621は2chに長文書き込んでる暇あったら英語勉強したほうが良いよ?

683:デフォルトの名無しさん
12/02/11 07:26:19.43
キーワード引数をハッシュで代用してる
Ruby使いがハッシュをキモイって言ってもなぁ……

684:デフォルトの名無しさん
12/02/11 07:30:17.42
ハッシュってキーを間違えた時
エラー出る?

685:デフォルトの名無しさん
12/02/11 07:37:26.32
>>679
> 詭弁であると思うのなら、その時点で(=一番最初に)指摘すればいい
> たとえば>>539では、>>510の主張が仮定を元にした詭弁であると即座に反論している

>>504
>・RubyがあったからこそRailsが生まれた

>>510
>> RubyがなかったらPython Railsができていたと思うよ

>>539
> 革新的な発明/発見/発想に対して、後になってから
> 「あんなのは俺にだってできた」と語るのは三流の証(あかし)

>>510 を「あんなのは俺にだってできた」と語っていると考えたのは
馬鹿の証

ただ、証(あかし)ってかっこつけて書きたかったんでしょ。
バーカ

686:デフォルトの名無しさん
12/02/11 07:41:31.82
ならない

キーワード引数をハッシュで模倣するのは
間違った引数を書いてもエラーにならないという
明らかな欠点が存在する

687:デフォルトの名無しさん
12/02/11 07:46:02.36
>>665
ifが式のHaskell様の素晴らしいコード

s = "begin" ++ if True
                  then "foo"
                  else "bar"
    ++ "end"

答え:s = "beginfoo"
あれ?endは?

688:デフォルトの名無しさん
12/02/11 07:54:27.17
>>683
一応2.0では本物のキーワード引数が入るっぽいよ


689:デフォルトの名無しさん
12/02/11 07:56:04.39
とういかさ、なんでそういう基本的な機能を
最初に作らないの?

690:デフォルトの名無しさん
12/02/11 07:59:45.72
>>686
ハッシュで分岐を表現する>>562と違って
ハッシュでキーワード引数を表現するのは
本物のキーワード引数より機能的に劣るってことか

異質とかトリッキーなんて主観よりも明確だな

691:デフォルトの名無しさん
12/02/11 08:02:20.66
Pythonのインデント強制はなにか意味があるのかね?
インデント程度でコードが読みやすくなるわけ無いし。
強制されなくてもインデントするでしょ?

それよりか、スペース強制のほうがいいと思う。
たとえば × foo+bar、○ foo + bar こんな感じ。

英語文化的にこういう場合にはスペースを開けるのが普通。
そしてスペース強制と書いたけど、本当は、
「foo+bar」いう変数名として解釈される。

関数もオブジェクトという考えと同じように
記号もまた名前なんだよ。



692:621
12/02/11 08:03:50.40
>>683
トンチンカンな指摘だなあ
Rubyには(Pythonの)キーワード引数に相当する構文は無いよ
Pythonのディクショナリを展開して関数へ渡す方法に相当するのが、
Rubyのハッシュによる引数渡しになる

>>684
(Pythonの)ディクショナリってキーを間違えた時エラー出る?

>>686,690
上で書いたようにディクショナリに相当するのがハッシュであり、
Pythonのディクショナリ渡しで間違ったキーを書いてもエラーにはならないから、
これまたトンチンカンな指摘だ
ただし、Pythonのキーワード引数そのものはRubyには無い優れた特徴だと思う

693:デフォルトの名無しさん
12/02/11 08:13:35.20
Rubyではキーワード引数をハッシュで代用する話をしてるのに
何でPythonで辞書で渡す話にすり替えてるの?
Pythonにはキーワード引数があるんだから
キーワード引数を使いたい(引数を間違えたときにエラーにしたい)なら
辞書じゃなくてキーワード引数を使うよ

694:621
12/02/11 08:18:15.25
>>693
すり替えたつもりはないよ
>>692にはPythonのキーワード引数は(Rubyには無い)優れた特徴であると
書いてあるのに、読めなかったのかな?

695:デフォルトの名無しさん
12/02/11 09:51:05.87
引数の取り回しは、
オプション引数・デフォルト引数、キーワード引数、型チェック、バリデーション機能
くらいは言語仕様でどの言語も実装してほしいな

696:デフォルトの名無しさん
12/02/11 09:54:49.33
そうだね
ブロック引数もどの言語でも実装してほしいよね

697:621
12/02/11 10:08:24.71
そうだなw
でも、それを言い出すと

PHP: HTML内にコードを埋め込むのはLLならできて当然だよね
Javascript: 今の時代、デフォでWebブラウザ上でも動くのが常識だろ

などと言う輩が続出して、収拾がつかなくなると思われ

698:デフォルトの名無しさん
12/02/11 10:11:40.70
まあ引数の話だし
最低要件PowerShellレベルってことで

699:デフォルトの名無しさん
12/02/11 10:45:37.43
オプション引数(デフォルト引数)とカリー化の相性の悪さは異常

700:デフォルトの名無しさん
12/02/11 10:57:52.50
>>665
ys = (x for x in xs
        if (lambda x :
            True if x == "Green" else
            True if x == "Yellow" else
            False)(x))

701:デフォルトの名無しさん
12/02/11 12:05:42.87
実装してほしいとか言うなよ
それは日本語に翻訳してほしいって言うのと同じレベルの発想だ

702:デフォルトの名無しさん
12/02/11 12:33:06.02
Rubyは書き捨てスクリプト専用言語だから
キーワード引数なんて要らない
あれは大きいプログラム用の機能だからね

当然トイプログラム専用言語Haskellにも要らない

703:621
12/02/11 12:39:48.07
>>700
ありがとう
もしも今後関数型プログラミングの議論が再開してコードを引用する場合、
>>700のコードも忘れずに引用します

704:621
12/02/11 12:43:56.75
>>702
だよね
RedMineみたいなプロジェクト管理ツールなんてちっぽけな使い捨てスクリプトだし、
Railsみたいなフレームワークもオモチャみたいなもんだしね

.... .... .... これでいいのかなw

705:デフォルトの名無しさん
12/02/11 12:48:39.90
キーワード引数ってシェルコマンドから来た発想じゃねーの?

706:デフォルトの名無しさん
12/02/11 12:57:13.47
>>704
その辺はRuby本来の使い道を既に外れてると思われ

707:621
12/02/11 12:58:20.60
>>699
オプション引数・デフォルト引数・キーワード引数というのは、
それらを個々にひとまとめとした直積データ構造であると考えた方が自然な気がする
たとえばオプション引数は省略可能な要素から成るタプル型で、
キーワード引数はレコード型であると解釈する

708:デフォルトの名無しさん
12/02/11 13:01:24.42
Ruby本来の用途を外れた使い方された挙げ句
GCが遅いおそい言われてるのを見ると
ちょっと可哀想ではある

709:621
12/02/11 13:18:32.55
>>706
たとえ生まれが使い捨てプログラミング用途だとしても、
可能性があり実現に望ましい性質を持つ言語であるのなら、
どんな用途に使われようと周囲がとやかく言うべきではないと思う

>>706は、子供達を無理矢理自分の枠にはめようとする
逝き遅れたオールドミス数学教師(>>442)の発想だね

Rubyたん(>>437)は、
RailsでメタプログラミングをそしてRakeおよびRSpecで内部DSLという、
これまでにない新しい扉を開いた
まだまだ潜在的な可能性がRubyには残されている
今回議論になった「Rubyによる関数型プログラミング」もそんな可能性の一つ
まだまだ成長と進化を続けていくだろうと思う

710:デフォルトの名無しさん
12/02/11 13:39:24.44
>>709
別に使われること自体は構わないけど
それを基準にするのはおかしくね?ってことだよ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch