1 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 13:14:17.03 ] 最強のLL=軽量プログラム言語は、どれよ? エントリーは、Perl、PHP、Python、Ruby、JavaScript・・・ さあ、死ぬまで語りやがれ!!! ■LLとは? 軽量プログラミング言語(Lightweight Language,LL)とは、取り回しに優れ、 コードの作成や修正が容易と見なされるプログラミング言語のことを指す。 ここでいう「軽さ」はプログラマの負担の軽重を指し、 実行速度に優れているという意味ではない。 現在の水準では ・インタプリタ ・動的型 ・正規表現 ・クロージャ などを利用できるものがLLと呼ばれることが多い。(Wikipediaより) 前スレ 【Perl,PHP】LLバトルロワイヤル19【Ruby,Python】 toro.2ch.net/test/read.cgi/tech/1320405770/
652 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 04:41:17.23 ] >>650 関数型プログラミングには適してないんじゃね。望まれてもいないし
653 名前:621 mailto:sage [2012/02/11(土) 04:56:47.53 ] >>648 >他のコード見ても何をやりたいのか分からん まあ他の言語のコードが読めない、つまりPythonしか知らないのならしかたないなぁ.... というか、他の言語の経験があって、その上でPythonがイイ!と言えるヤシはいないの? >>651 Python(>>566 下段) リスト内包表記内にごちゃごちゃしたコードを書かざるを得ない Haskell(>>566 上段) リスト内包表記内のコードを(where節で)外に追い出しているからスッキリしている
654 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 04:59:50.43 ] >>645 まぁ、そういわれればpythonは異端かもなぁ。 if構文は改行しないとダメだし、演算子の方は後置を強制されるから統一感がないね。 ifをワンライナーで書けるか、演算子が前置できればいいのかも。 LLの中じゃ、pythonは嫌いじゃないけど、ところどころキモくてもどかしいところあるよ。
656 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 05:05:00.80 ] >>639 Prologだと、 f(X) :- 'Green'(X). f(X) :- 'Yellow'(X). これはこれで多大なコストが掛かっているけど。
657 名前:621 mailto:sage [2012/02/11(土) 05:06:52.02 ] >>652 了解した もしそれがPython支持派の総意であるなら、これ以上はバトルスレで語る事柄ではないと思う この話題は終わらせてもいいだろう
658 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 05:08:50.13 ] 逃げんなよ。関数型プログラミングで言語の優劣が決まるのなら 関数型言語の今の惨状は無い
659 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 05:11:14.38 ] >>656 if ~ then ~ else ~ の場合はカットが必要なのでは? f(X) :- 'Green'(X),!. f(X) :- 'Yellow'(X).
660 名前:621 mailto:sage [2012/02/11(土) 05:11:53.34 ] >>654 あ、スマン、>>653 のカキコ内にあるアンカが間違っていた 訂正する X: >>566 O: >>562
661 名前:621 mailto:sage [2012/02/11(土) 05:14:10.19 ] >>658 逃げる気はないよ Python信者が関数型プログラミングの議論を続けたいなら、こちらも望むところだ
662 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 05:17:26.60 ] 単純に学習コストだな。受け入れやすさ。 簡単に使えるようになって、やりたいことが出来るのならそれで問題ない そうやって皆が使えば資料もライブラリも充実して、さらに学習コストが下がる 関数型プログラミング必須なんて有り得ないし それで出来上がった「スッキリ」と言われるコードは意味不明だし やはり一生普及しないだろうと実感した
663 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 05:34:35.58 ] >>648 Pythonが特別トリッキーだとは思わないな いまどきのjavascriptっぽくて好感が持てる
664 名前:656 mailto:sage [2012/02/11(土) 05:35:19.42 ] >>659 すみません。間違えました。 f('Green'). f('Yellow'). ですね。カットを入れるかどうかは迷います。Xがどこかに行ってしまいました。 これが嫌なら、 f(X) :- 'Green'==X. f(X) :- 'Yellow'==X. かな。
665 名前:621 mailto:sage [2012/02/11(土) 05:38:05.42 ] >>654 その文末にある醜い¥記号は何? Cのマクロ定義なら分かるけど、なんでそんな記号を使わないとならんのだろ インデント強制のPythonなら、(Haskellのように)インデントで書けないの? あと、そのコードは未完成 その関数定義をラムダ式にして>>562 の(ハッシュを使った)トリッキーなコードを書き換えてほしい
666 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 05:43:26.06 ] javascriptで思い出したけど、 なにげに,CoffeeScriptがすごくよさそうだと個人的には思う。
667 名前:621 mailto:sage [2012/02/11(土) 05:43:37.11 ] >>663 トリッキーであることそのものは批判していないよ 最初に以下の>>621 で書いたように >・もちろんRubyでもハッシュによる同様なコードを書けるが、 > ・ハッシュを使わなければ書けないPythonと > ・ハッシュを使っても使わなくても書けるRubyとの間には > 表現力に雲泥の差があるのは明白 Pythonが(ハッシュを使った)トリッキーなコードでしか表現できないことを問題視している
668 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 05:49:36.48 ] (lambda x: x in ["Green", "Yellow"])で良いんじゃね
669 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 05:50:30.20 ] ああ、問題を解決できてもダメなのか、関数型プログラミング至上主義的には
670 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 05:55:27.43 ] 関数型言語とか関係なくダメだと思うよ というかPython的にすらダメじゃないの
671 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 05:56:56.45 ] なぜ?"Green"か"Yellow"なら真、それ以外なら偽じゃないの
672 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 06:06:43.50 ] トリッキーだと思わないと言っているのに >トリッキーであることそのものは批判していないよ とか論点逸らしひどす
673 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 06:08:18.97 ] 最初から詭弁による話題誘導しかしてないよ。一番最初から
674 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 06:22:32.10 ] お前ら、Scala使えよ 実用的な関数型言語だ RubyとかPythonとかどうでも良くなるよ。
675 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 06:25:34.79 ] ScalaはJava臭が残ってるから好きじゃない
676 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 06:29:27.42 ] RubyからScalaに乗り換えた15くらいの理由 ttp://wota.jp/ac/?date=20100426#p01
677 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 06:34:58.63 ] まずはスレタイに Scala 入れてからだな
678 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 06:40:43.46 ] Rubyはいらんだろ
679 名前:621 mailto:sage [2012/02/11(土) 06:46:38.64 ] >>673 詭弁であると思うのなら、その時点で(=一番最初に)指摘すればいい たとえば>>539 では、>>510 の主張が仮定を元にした詭弁であると即座に反論している 議論が進行してしまってから「一番最初から」うんぬん言うのは、 バトルスレでは自ら敗北を宣言したに等しい では、>>643 を添削しておこう X: 最初から詭弁による話題誘導しかしてないよ。一番最初から O: もうこれ以上は技術的な議論しても勝てそうにないので、印象操作しかできません(涙声
680 名前:621 mailto:sage [2012/02/11(土) 06:55:09.24 ] >>672 >トリッキーだと思わないと言っているのに あっそうか、Python(>>562 下段)しか知らない蛙さんだったのね ならばしかたないな.... Ruby(>>561 上段)/ML(>>561 下段)/Haskell(>>562 上段)のコードが読める人なら、 単純にcase...という多分岐構文を使うだけなのに、 ハッシュを使わないと書けないなんてPythonとは変というか不自由な言語だなあって思うよ
681 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 07:05:58.33 ] ん? 異質=トリッキー だと思ってる馬鹿?
682 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 07:22:44.59 ] 621は2chに長文書き込んでる暇あったら英語勉強したほうが良いよ?
683 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 07:26:19.43 ] キーワード引数をハッシュで代用してる Ruby使いがハッシュをキモイって言ってもなぁ……
684 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 07:30:17.42 ] ハッシュってキーを間違えた時 エラー出る?
685 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 07:37:26.32 ] >>679 > 詭弁であると思うのなら、その時点で(=一番最初に)指摘すればいい > たとえば>>539 では、>>510 の主張が仮定を元にした詭弁であると即座に反論している >>504 >・RubyがあったからこそRailsが生まれた >>510 >> RubyがなかったらPython Railsができていたと思うよ >>539 > 革新的な発明/発見/発想に対して、後になってから > 「あんなのは俺にだってできた」と語るのは三流の証(あかし) >>510 を「あんなのは俺にだってできた」と語っていると考えたのは 馬鹿の証 ただ、証(あかし)ってかっこつけて書きたかったんでしょ。 バーカ
686 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 07:41:31.82 ] ならない キーワード引数をハッシュで模倣するのは 間違った引数を書いてもエラーにならないという 明らかな欠点が存在する
687 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 07:46:02.36 ] >>665 ifが式のHaskell様の素晴らしいコード s = "begin" ++ if True then "foo" else "bar" ++ "end" 答え:s = "beginfoo" あれ?endは?
688 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 07:54:27.17 ] >>683 一応2.0では本物のキーワード引数が入るっぽいよ
689 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 07:56:04.39 ] とういかさ、なんでそういう基本的な機能を 最初に作らないの?
690 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 07:59:45.72 ] >>686 ハッシュで分岐を表現する>>562 と違って ハッシュでキーワード引数を表現するのは 本物のキーワード引数より機能的に劣るってことか 異質とかトリッキーなんて主観よりも明確だな
691 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 08:02:20.66 ] Pythonのインデント強制はなにか意味があるのかね? インデント程度でコードが読みやすくなるわけ無いし。 強制されなくてもインデントするでしょ? それよりか、スペース強制のほうがいいと思う。 たとえば × foo+bar、○ foo + bar こんな感じ。 英語文化的にこういう場合にはスペースを開けるのが普通。 そしてスペース強制と書いたけど、本当は、 「foo+bar」いう変数名として解釈される。 関数もオブジェクトという考えと同じように 記号もまた名前なんだよ。
692 名前:621 mailto:sage [2012/02/11(土) 08:03:50.40 ] >>683 トンチンカンな指摘だなあ Rubyには(Pythonの)キーワード引数に相当する構文は無いよ Pythonのディクショナリを展開して関数へ渡す方法に相当するのが、 Rubyのハッシュによる引数渡しになる >>684 (Pythonの)ディクショナリってキーを間違えた時エラー出る? >>686 ,690 上で書いたようにディクショナリに相当するのがハッシュであり、 Pythonのディクショナリ渡しで間違ったキーを書いてもエラーにはならないから、 これまたトンチンカンな指摘だ ただし、Pythonのキーワード引数そのものはRubyには無い優れた特徴だと思う
693 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 08:13:35.20 ] Rubyではキーワード引数をハッシュで代用する話をしてるのに 何でPythonで辞書で渡す話にすり替えてるの? Pythonにはキーワード引数があるんだから キーワード引数を使いたい(引数を間違えたときにエラーにしたい)なら 辞書じゃなくてキーワード引数を使うよ
694 名前:621 mailto:sage [2012/02/11(土) 08:18:15.25 ] >>693 すり替えたつもりはないよ >>692 にはPythonのキーワード引数は(Rubyには無い)優れた特徴であると 書いてあるのに、読めなかったのかな?
695 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 09:51:05.87 ] 引数の取り回しは、 オプション引数・デフォルト引数、キーワード引数、型チェック、バリデーション機能 くらいは言語仕様でどの言語も実装してほしいな
696 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 09:54:49.33 ] そうだね ブロック引数もどの言語でも実装してほしいよね
697 名前:621 mailto:sage [2012/02/11(土) 10:08:24.71 ] そうだなw でも、それを言い出すと PHP: HTML内にコードを埋め込むのはLLならできて当然だよね Javascript: 今の時代、デフォでWebブラウザ上でも動くのが常識だろ などと言う輩が続出して、収拾がつかなくなると思われ
698 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 10:11:40.70 ] まあ引数の話だし 最低要件PowerShellレベルってことで
699 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 10:45:37.43 ] オプション引数(デフォルト引数)とカリー化の相性の悪さは異常
700 名前:デフォルトの名無しさん mailto:sage [2012/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 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 12:05:42.87 ] 実装してほしいとか言うなよ それは日本語に翻訳してほしいって言うのと同じレベルの発想だ
702 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 12:33:06.02 ] Rubyは書き捨てスクリプト専用言語だから キーワード引数なんて要らない あれは大きいプログラム用の機能だからね 当然トイプログラム専用言語Haskellにも要らない
703 名前:621 mailto:sage [2012/02/11(土) 12:39:48.07 ] >>700 ありがとう もしも今後関数型プログラミングの議論が再開してコードを引用する場合、 >>700 のコードも忘れずに引用します
704 名前:621 mailto:sage [2012/02/11(土) 12:43:56.75 ] >>702 だよね RedMineみたいなプロジェクト管理ツールなんてちっぽけな使い捨てスクリプトだし、 Railsみたいなフレームワークもオモチャみたいなもんだしね .... .... .... これでいいのかなw
705 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 12:48:39.90 ] キーワード引数ってシェルコマンドから来た発想じゃねーの?
706 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 12:57:13.47 ] >>704 その辺はRuby本来の使い道を既に外れてると思われ
707 名前:621 mailto:sage [2012/02/11(土) 12:58:20.60 ] >>699 オプション引数・デフォルト引数・キーワード引数というのは、 それらを個々にひとまとめとした直積データ構造であると考えた方が自然な気がする たとえばオプション引数は省略可能な要素から成るタプル型で、 キーワード引数はレコード型であると解釈する
708 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 13:01:24.42 ] Ruby本来の用途を外れた使い方された挙げ句 GCが遅いおそい言われてるのを見ると ちょっと可哀想ではある
709 名前:621 mailto:sage [2012/02/11(土) 13:18:32.55 ] >>706 たとえ生まれが使い捨てプログラミング用途だとしても、 可能性があり実現に望ましい性質を持つ言語であるのなら、 どんな用途に使われようと周囲がとやかく言うべきではないと思う >>706 は、子供達を無理矢理自分の枠にはめようとする 逝き遅れたオールドミス数学教師(>>442 )の発想だね Rubyたん(>>437 )は、 RailsでメタプログラミングをそしてRakeおよびRSpecで内部DSLという、 これまでにない新しい扉を開いた まだまだ潜在的な可能性がRubyには残されている 今回議論になった「Rubyによる関数型プログラミング」もそんな可能性の一つ まだまだ成長と進化を続けていくだろうと思う
710 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 13:39:24.44 ] >>709 別に使われること自体は構わないけど それを基準にするのはおかしくね?ってことだよ
711 名前:621 mailto:sage [2012/02/11(土) 13:57:29.18 ] >>710 生まれが書き捨てスクリプト言語であることを基準にする >>702 の発想はおかしくね?ってことだよん
712 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 14:30:37.38 ] まぁ、勝手に使っておいて文句ばっかり言うのは うんkだな。
713 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 14:36:27.02 ] >>711 まあそこはね 無くてもやれるが、その内ほしいな
714 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 14:52:03.72 ] 主要なものは既に存在する。 まだないのは、マイナーすぎて作れないもの。 マイノリティを肯定しないと作れない。
715 名前:621 mailto:sage [2012/02/11(土) 15:13:20.36 ] >>714 そのとおりだと思う おそらく、それには変人の発想(>>575 ,578,596)が必要になる 簡単に言うと、周囲のマジョリティーと安易に同調しない強い意志/自我を持つこと そしてRubyスレによれば、どうやらRubyにはそんな変人達を引きつける魔力があるらしいw
716 名前:621 mailto:sage [2012/02/11(土) 15:33:40.22 ] >>713 確かに>>695 の中でRubyには欠けている キーワード引数、型チェック、バリデーション機能は (欲張りかもしれないが)Rubyにもほしいところだね ただ、キーワード引数については、Ruby 1.9で順序付きハッシュが導入されたことだし、 Smalltalk(あるいはObjective-C)風のメッセージ式によるメソッド定義のほうが (Pythonのキーワード引数よりも)可読性が高くて望ましいなぁ たとえば、def put: str at: point; .... end みたいに でも、Rubyの構文に大掛かりな変更が必要になるから、採用される見込みは無いだろうw あと、型チェックとバリデーション機能についてはTestUnit風の アサーションライブラリ関数で(暫定的に)対応できないかと開発を進めているところ たとえばこんな感じ def put_at str, point ASSERT.kind_of str, String ASSERT.tuple_of point, [Float, Float] 最終的には、この型アサーション(表明)を関数アノーテーション(注釈)と見なして、 ドキュメント内に型式(あるいは自然言語風の解説)を自動生成することも視野に入れている
717 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 15:52:16.64 ] お題って621がlambda式に条件分岐が必要なものを自分で考えたんだろうなあw
718 名前:デフォルトの名無しさん [2012/02/11(土) 16:13:29.15 ] Ruby をシェルの変わりに使いたいな シェルだと、以下のような記述をして実行したとき rm -rf ${TEMP_DIR}/*.* 変数を定義しているソースの取り込み忘れや、 変数のスペルミスがあったときに悲惨な結果になるんだよな てかやっちまったんだよ……orz
719 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 16:20:41.47 ] まあ型チェックもバリデーションも Pythonならデコレータで簡単にできるんですがね
720 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 16:22:25.98 ] 621は人の話を聞かず、正反対の意味に曲解して話を進めるのをやめた方がいい
721 名前:621 mailto:sage [2012/02/11(土) 16:55:30.71 ] >>717 そうだよ、今頃気が付いたのw Ruby/ML/Haskellでは簡潔に書けるけどPythonではそうでないお題を選んでいる つまり、Pythonは「どちらが関数型プログラミングに適しているか」という勝負に 負けるべくして負け、「不適格」という烙印を押されたことになる >>720 前にも書いたけど(>>679 )、もしも悪意のある曲解があるならその時点で強引にでも止めればいい その判断が正当なものであれば、いくら強引でも止める行為を非難するヤシはいないはず 後になってから「xxすべき」を言い出すのは、敗者の泣き言(あるいは負け犬の遠吠え)だ では、>>720 を添削しておこう X: 621は人の話を聞かず、正反対の意味に曲解して話を進めるのをやめた方がいい O: 技術的な議論では自分の思い通りに話を進められないので、個人攻撃に移るよ
722 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 16:56:39.82 ] >>703 せっかくpythonがクールでないというお題を考えたのに残念だったね
723 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 16:57:07.50 ] >>721 >>700 でちゃんと出来たじゃん。残念
724 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 16:58:07.24 ] >>721 そういう議論の進め方が下衆だって言ってるんだよ
725 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 16:58:29.46 ] 荒らしに何を言っても無駄
726 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 17:21:47.15 ] まあバトロワスレなんて基本はこんなもんじゃね
727 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 17:43:01.03 ] QZはずっとここにいろ ここQZ隔離スレにしてよ
728 名前:621 mailto:sage [2012/02/11(土) 17:47:14.12 ] >>722 ,723 3つあるお題の内、多分岐については>>700 がコードを示してくれたので >>621 の「Pythonではハッシュを使わなければ書けない」という主張を取り下げる ただし、もし可能であったなら>>700 のコードは前スレで示すべきだった 前スレのPythonな人も難しいと言われるリスト内包表記を使いこなすだけの技量はあったけど、 >>562 (下段)のようなハッシュを使うコードしか思いつけなかった そして今レスでも誰も>>562 に対してコードで反論できずにいて、 >>639 ,665と誘導することによってようやく>>700 の「ちゃんとした」コードが完成した これは、Pythonによる多分岐のコード化が いかに難解なものであるかを示しているのではないのかな? Rubyなら簡単に書ける初歩的なお題なんだよ あと、>>621 の残る2つのお題、二分岐と局所宣言に関するPythonへの問題指摘に対しては 明解な反論が無いまま、>>650 の > それは「Pythonは関数型プログラミングに適していない」という意見への賛同として > 解釈してよいのかな? という問いかけに対して>>652 が > 関数型プログラミングには適してないんじゃね。望まれてもいないし と返答しているけど、別人さんなのかな? それともPython支持派には意見の不統一があるのかな? >>661 で書いたように逃げる気は無いので、議論の続きを再開しても自分はかまわないよ
729 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 18:01:41.70 ] >>728 どこが難解なんだよw お前がpythonのことを1ミリも知らなかっただけじゃねえか もう黙れ。二度と再開するな
730 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 18:02:57.77 ] お題が悪い pythonのlambda式が不便になることがあるのは事実だが、こういうパターンではない おそらく不便という事実だけ聞いてこの問題を作ったんだろうけど的外れもいいところ
731 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 18:07:32.90 ] らむだこりゃ
732 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 18:09:49.97 ] / ..::::::...ヾ,-┐:::::.. ヽ、 /:::::::: :::::::::::::::..ヽ|、::::::::... ヽ、 ラムだっちゃ♥ / :::::::: 、:::::::::::::::::...ヽ::::::::::::.. ヽ / ::::: 人、 | ヽ、_:::::::::::::: |:::::::::::::. | ,イ´ | :::ト、 | `'-,r‐=,、ヽ、 ::: |:::::::::::::: | rv' l´ ヽ、:.| r-、 p ヽ `l ,ヘ::::::::::::::::: | | | | ヾヽ、 ハ ヾ_ノ .| |' .|:::::::::::::::::: | ''´ ̄ ̄`ヽ、、_ | | | ヽ、l ゞ ー | レ'::::::::::::::::::: | ´ ̄ ` r-L l ', |` 、 ,' |:::::::::::::::::::::: | _rヾニ `ヽ ', ヽ、 r‐-ァ /::|::::::::::::::::::::::::.. | ヾゝイ´ ,/ .', ヽ、ゝ' _,.-;ノ:: |:::::::::::: ::::.. | ::.. ト ´ /.... 'ヽ,、_ >r' /:: /::::::::::::: ::: | : 〉 .|:::::::::::...... `ー-‐'´,-/ /::::: / `ヽ、::: | ::.... .:::::::::::| |:::::::::::::::::,、-r―'''´ ̄ ,.-‐'´:::. / |:::::.... . | :::::::::::::::::::::::::::::::::| ',:::::::::::::∧ヾ V/―/::::::::::: / |:::::::::::.......:::. | :::::::::::::::::::::::::::::::::| ',:::::::::::ト kl /三/:::::::::: / ,'::::::::::::::::::::::: | :::::::::::::::::::::::::::::::::| ',:::::::::|ヾヾ|、 /::::::::: ,イ ,'::::::::::::::::::::::::: | | :::::::::::::::::::::::::::::::::| ',/ヽ__ヾ、|:::::: ∧/ /:::::::::::::::::::::::::: |.|.| ::::::::::::::::::::::::::::::::::', ! / ヾ:: ∠__/ /:::::::::::::::::::::::::: | ||
733 名前:621 mailto:sage [2012/02/11(土) 18:37:08.10 ] >>729 いや、Pythonのことは部分的に知っているはずだよ だって、Pythonの弱点を突けるコードを意図的に選んだのだからw あと、>>658 は「逃げんなよ」と言い、>>729 は「二度と再開するな」と言う 同じ人ではないと思うので、別人さんでPython支持派内に意見の不統一があるのかな いったいぜんたい、どっちにすればいいんだろう 関数型プログラミングへの適合性について議論を再開する or しない、 Python支持派内で意見を統一した上で、どちらにするのか返答を希望する >>730 だから、もしもお題が悪いのなら、最初にお題が示された時点で(=前スレで)反論しないとね 議論が終わってから「xxが悪い」と言い出しても遅いよ もし今から反論したいのなら、Python/ML/Haskellでは簡潔に書けるけど Rubyではそうではない「単純明快な」お題を、Python/ML/Haskellのコードで示してくれ 論よりコードだよ なお、議論の再開に関しては即答しなくともかまわない たとえば次スレでバトルの第三ラウンドを始めてもいいよ 判断はそちらにあずける
734 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 18:48:23.94 ] 前スレも>>700 も書いたのは俺 あのときハッシュを使ったのはRubyのコードが例外を投げてたから 最後に関数型っぽいコード ys = filter(lambda x: x in ["Green", "Yellow"], xs)
735 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 19:10:15.80 ] >>733 いや、お前の主張が間違ってたのだからそこで終了だろw 結局優位性すら認められずw
736 名前:621 mailto:sage [2012/02/11(土) 19:17:12.53 ] >>734 >あのときハッシュを使ったのはRubyのコードが例外を投げてたから お題のコードは変数宣言が欠けているから例外が発生するのは明白 こちらとしては、その程度の壁なら自力で対処できるくらい「Rubyを知っている」と思っていた また、もしも例外発生を自力で解決できないかったのなら、 その時点でそれを言うべきだったと思うよ そんな機会はいくらでもあった 例外うんぬんのいい訳は、前スレ(あるいは今スレ>>621 )から>>700 のレスまで 「ちゃんとしたコード」の完成に時間を要した理由にはならない >ys = filter(lambda x: x in ["Green", "Yellow"], xs) ys = xs.select { |x| ["Green", "Yellow"].include? x }
737 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 19:24:56.68 ] 「Pythonを知らない」奴がなぜ偉そうなのか分からん
738 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 19:25:20.24 ] >>736 > お題のコードは変数宣言が欠けているから例外が発生するのは明白 そうじゃなくて、>>561 のRubyコードはgreen, yellow, red 以外なら raise RuntimeError の行で例外を投げてるだろ
739 名前:621 mailto:sage [2012/02/11(土) 19:26:17.24 ] >>735 1つの主張が崩れても全体が否定されないよう、意図的にお題は3つに分かれている 残念ながら「Pythonは関数型プログラミングには不適格」という烙印は消えていないw では、残る2つの主張を崩せる反論の準備をよろしく頼むぜ 議論の再開を待っているよ
740 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 19:28:30.99 ] やはりPythonの解答が「明らかに」美しいな。この問題だと
741 名前:621 mailto:sage [2012/02/11(土) 19:35:15.41 ] >>738 ML/Haskellといった静的型付け関数型言語は、green, yellow, red 以外なら型エラーになる それに合わせてRubyは動的型付けだから例外を投げるコードにしている それがお題だ(関数型言語は知っているんだよね?) ただし、Pythonでは例外を投げるコードが難しいみたいだったから、 あの時はその部分について「見逃してあげた」だけの話 もし反論があるなら、>>700 のコードについて、例外処理を含めて再実装してくれ
742 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 19:38:43.73 ] >>741 >>562 のPythonのコードも green, yellow, red 以外なら例外投げる 見逃してもらう必要は無い
743 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 19:40:32.46 ] 非現実的な馬鹿らしいお題だな
744 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 19:48:13.07 ] >>737 同意するわ。 こいつPythonのプログラム読めて無いじゃん。 可読性を議論するレベルに達してない。
745 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 20:06:42.60 ] PHP最強ということで結論が出たようだな。
746 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 20:13:32.23 ] >>561 >>562 ML,Haskell,Pyhtonは似てるけどRubyだけ異質で浮いてる。 はっきり言ってRubyだけキモい。
747 名前:621 mailto:sage [2012/02/11(土) 20:13:33.28 ] >>742 あっそうなんだ、>>562 でもハッシュを投げるんだね 失礼した、謝罪する では、型エラーまたは例外発生をお題に含めるものとして、 >>621 の「Pythonではハッシュを使わなければ書けない」という主張を崩すために、 >>700 (あるいは>>734 )のコードについて例外処理の実装を追加してみて欲しい こちらで試したところ、>>700 ,734とも例外は発生してない
748 名前:621 mailto:sage [2012/02/11(土) 20:17:06.28 ] >>740 ,746 そういった意見は、主観であり客観的な判定材料にならないことは すでに結論付けられている だから>>621 では具体的で客観的な問題指摘を示した したがって、同様なレベルの意見を希望する
749 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 20:31:40.61 ] いまをときめくFacebookも、ブログシステムてして他の追随を許さないWordPressも CMSとして最強の呼声高いDrupalも、みんなPHPで作られているんですね。 すごいよなぁ。
750 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 20:35:29.04 ] PHP遅すぎてC++に変換したり 苦労しているみたいだけど
751 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 20:38:45.64 ] え? ここLLのスレだよね?
752 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 20:46:39.95 ] >>748 >>621 は間違ってただろwさっさと訂正しろよ