[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/06 16:48 / Filesize : 289 KB / Number-of Response : 971
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Perl,PHP】LLバトルロワイヤル20【Ruby,Python】



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/

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さっさと訂正しろよ

753 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 20:48:52.46 ]
>>748
「ハッシュは異質・トリッキー」が主観で無くて何なんだ?

客観的と言うなら、ハッシュで分岐するのが
キーワード引数の例(>>690)のように
機能的に劣った点があることを示せ



754 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 20:54:05.79 ]
621が自分の主観を客観的を言ってるんだけど、何なの

755 名前:621 mailto:sage [2012/02/11(土) 20:58:47.63 ]
>>752
>>742から再実装されたコードが提示されたら、まとめて訂正するつもりだよん

今のままだと>>700のコードは例外を投げないから仕様不整合であり、
>>621の「ハッシュを使わなければ書けない」という主張は崩れていない
>>742が(仕様不整合を)見逃してもらう必要は無いと、明確に意志を示してくれたので、
それを尊重してコードの提示を待っているところ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<289KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef