【Perl,PHP】LLバトルロワイヤル4【Ruby,Python】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/02/15(日) 03:18:33エントリーは、
Perl、PHP、Python、Ruby、JavaScript・・・
さあ、死ぬまで語りやがれ!!!
0413デフォルトの名無しさん
2009/03/02(月) 21:00:10Perlっぽいが、動くとは思えん。これ何?
0414デフォルトの名無しさん
2009/03/02(月) 21:00:57知らんけど、無さそうだね。
hoge['key'] = value じゃ駄目?
3.8 マップ型
http://www.python.jp/doc/release/lib/typesmapping.html
0415デフォルトの名無しさん
2009/03/02(月) 21:03:00最後にdictを使うのなら、injectじゃなくて、リスト内包表記やmapの方が素直
じゃね?Python本スレではそうなってた。
0416デフォルトの名無しさん
2009/03/02(月) 21:07:51PowerShellですよ
どうせならはっきりキモイと言ってくれても私は一向に構わん
% は Foreach-Object というコマンドのエイリアスで
ハッシュテーブルへは配列表記プロパティ表記どちらでも可能なのでこんな感じでキモく書けます
0417デフォルトの名無しさん
2009/03/02(月) 21:16:02{}.__setitem__(k, v)
0418デフォルトの名無しさん
2009/03/02(月) 21:16:44>>414
hoge.__setitem__(key, value)
無理やりreduceで書くなら例えば
reduce(lambda d, x: d.__setitem__(x, request[x]) or d, ['hoge','fuga'],{})
こんな書き方になると思うけど、Python使いはこの例を普通こんな風には書かない
dict((k, request[k]) for k in ['hoge','fuga'])
のほうがずっと素直で短く読みやすいからね
0419デフォルトの名無しさん
2009/03/02(月) 22:00:38なるほど、キモいけど面白れー!
0420デフォルトの名無しさん
2009/03/02(月) 22:15:29内包記法はうらやましい
0421341
2009/03/02(月) 22:30:41ちなみに元の言語であるPHPにも、forループしかないわけじゃなくて、むやみ
やたらと沢山のarray関連関数がある。
http://jp2.php.net/manual/ja/book.array.php
これを利用したら簡潔にならないかと思ったんだが、
array_intersect_key($request, array_flip(array('hoge', 'fuga')));
関数名の長いせいもあって、どうも垢抜けないのう。
0422デフォルトの名無しさん
2009/03/02(月) 22:47:33Perl とか Ruby とか、もっと面白いことできないの?
0423デフォルトの名無しさん
2009/03/02(月) 22:52:030424デフォルトの名無しさん
2009/03/02(月) 23:00:41Hash[*['hoge','fuga'].map {|x| [x, request[x]]}.flatten]
個人的には、リスト内包表記より、Rubyのmapとブロックのほうが好きだな。
0425デフォルトの名無しさん
2009/03/02(月) 23:06:06Rubyはさておき、Perl だったら、とにかく変態的なことをしてほしい。
ほかの言語だったらありえないようなこと。
0426デフォルトの名無しさん
2009/03/02(月) 23:13:37http://pc11.2ch.net/test/read.cgi/tech/1231856193/412
>中二設定豊富
0427デフォルトの名無しさん
2009/03/02(月) 23:15:50>>379の縦横無尽の記号乱舞リスト展開くらいではまだ足らんと申すか
0428デフォルトの名無しさん
2009/03/02(月) 23:21:58いや、逆。あれで火がついちゃった。Perlすげえ。
もっと何か見せてほしい。
0429デフォルトの名無しさん
2009/03/02(月) 23:26:580430デフォルトの名無しさん
2009/03/02(月) 23:30:32> 個人的には、リスト内包表記より、Rubyのmapとブロックのほうが好きだな。
ブロック内に複数行でも書けるから、凝ったことがやりやすいよね。
Pythonのリスト内包表記だと、長くなるとだんだん読み書きしづらくなる。
そのうち業を煮やして、手作業でforループに書き換えることに。
そのときの面倒さと言ったら。
これって俺だけ?
0431デフォルトの名無しさん
2009/03/02(月) 23:31:11リファレンスでごちゃごちゃしたって簡潔にも面白くもならんだろうし。
他の例のようにループ(?)にするとこんな感じかな。
my %a = map { ($_, $request{$_}) } ('hoge', 'fuga');
0432デフォルトの名無しさん
2009/03/02(月) 23:31:22面白そうなので俺も書いてみた。
for(keys %request){if(/hoge/||/fuga/){$r{$_}=$request{$_};}}
grepで出来んかな
0433デフォルトの名無しさん
2009/03/02(月) 23:32:24ええそうです。手段のためなら目的を選びませんとも!
0434デフォルトの名無しさん
2009/03/02(月) 23:43:30「継続渡し」スタイルだ。
だから副作用の書けないPythonのlambdaでも、ちゃんと結果を累積できるんだ。
>>426
Haskell わかんないから君が書いてよ。
0435デフォルトの名無しさん
2009/03/02(月) 23:45:22my %a = map {$_, $request{$_}} grep {/^hoge|fuga$/} keys %request;
0436デフォルトの名無しさん
2009/03/02(月) 23:58:08すげえ、もう意味が分からない。
0437デフォルトの名無しさん
2009/03/02(月) 23:58:43おお、さすがム版!
grep版がすぐに出てきて、個人的に満足した。ありがとう。
0438378
2009/03/03(火) 01:45:34実はオチに使おうと思って用意していた言語がある。
R。R言語やGNU Rとも呼ばれる、統計用ベクトル言語。基本的にすべてのデータ
がベクトル。
> request <- c(hoge=1, fuga=2, piyo=3)
> request[c('hoge', 'fuga')]
hoge fuga
1 2
ご覧の通り、変数の添え字にベクトルを与えられるので、きわめて簡潔、と言
うかそのまんまに書ける。これ以上簡潔というと、話に聞くAPLぐらいしか思い
つかない。まあAPLに連想配列があるか知らんけど。
--
プログラミング言語というものは、使用目的が固定された場合、
ライブラリ → フレームワーク → DSL
という形で進化していくものだと思う。効率ではDSLが最高で、汎用言語は絶対
に追いつけない。例えば、RDBをSQLじゃなくてCで直接操作するのは鬼のように
大変。
しかしDSLは、習得は容易だが自由度が低くて、やろうとしたことができないこ
とも多い。だから一般的に、人気の出たDSLはだんだん汎用言語化していく。
PL/SQLとか。R なんか、行き過ぎるくらい汎用言語化している。
つうことで、言語の進化には、汎用言語<-->専用言語の逆向きの流れが同時に
存在していて、人が言語の良し悪しについて議論する場合、どっちを重視する
かが人によって違うのが、話のかみ合わない一因じゃないかなと思っている。
0439378
2009/03/03(火) 01:54:26えられて、用意した結論がいきなり疑わしくなってしまった。Perlは存在が反則。
つうことで、いろんなコードが見られて自分は面白かったです。皆さんありがとう。
0440デフォルトの名無しさん
2009/03/03(火) 02:42:390441デフォルトの名無しさん
2009/03/03(火) 02:45:32なんかよくわからんこと書いてるな。
fold, inject, reduce 自体が継続渡しスタイルなんだよ。
>>407は、副作用無しに作れて、あとで連想配列に変えられるような
処理結果の累積方法を見つけたのが偉いの。
あとこれは、連想配列にある要素を加えた結果を作る式が、たまたまPythonには
なかったというだけの話。それをlambdaで与えれば、dictは要らなかった。
0442デフォルトの名無しさん
2009/03/03(火) 03:04:48> request[c('hoge', 'fuga')] で値だけじゃなくキーも返すっていうのは良いのか悪いのか
問題ない。
キーを持つベクトルと、持たないベクトルとで、そのまま演算できるから、
値だけの場合と同様に扱える。
> (c(hoge=1, fuga=2) + c(10, 20))
hoge fuga
11 22
0443デフォルトの名無しさん
2009/03/03(火) 03:09:09c(hoge=1, fuga=2) + c(10, 20)
0444デフォルトの名無しさん
2009/03/03(火) 03:18:45あー、いわゆる"配列"と"連想配列"を差別しないのが"ベクトル"なわけかな
0445デフォルトの名無しさん
2009/03/03(火) 03:47:46まあそんな感じ。
もう少し言うと、ベクトルは基本的には、自然数が添え字の単なる配列。
だけど「キー」を付けると、キーの値でも要素にアクセスできるようになる。
連想配列としては擬似的なもの。
だから、「キー」(正確には「name属性」)を持つベクトル同士を足すと、
> c(hoge=1, fuga=2) + c(fuga=10, piyo=20)
hoge fuga
11 22
単に要素の順番で足されて、後者のname属性は結果には残らない。
この辺はちょっとガッカリ?
真に配列と連想配列をうまく統合したのは、PHPだと思う。
0446デフォルトの名無しさん
2009/03/03(火) 04:56:46無駄に汎用言語化するという流れは、まああるだろうね。
PerlとPHPは別にオブジェクト指向なんか実装する必要はなかったと思うし、
まあ実際無理に汎用言語化された機能の使われ方も微妙。
0447デフォルトの名無しさん
2009/03/03(火) 06:15:54SQLのUNIONみたいなもんですかね
0448デフォルトの名無しさん
2009/03/03(火) 21:24:22多重代入くらいにはメジャーだと思ってた
0449デフォルトの名無しさん
2009/03/03(火) 23:58:33>もう少し言うと、ベクトルは基本的には、自然数が添え字の単なる配列。
>だけど「キー」を付けると、キーの値でも要素にアクセスできるようになる。
>連想配列としては擬似的なもの。
擬似ハッシュ(Pseudo-Hash)なら、Perlにもv5.005の頃からあったけど、
そのデータ構造上、メモリ効率やパフォーマンスに悪影響があるということで、
v5.9.5で廃止された。これ豆
0450デフォルトの名無しさん
2009/03/04(水) 11:57:12Perlってほんとに何でもあるなあ。
Perlの言語仕様って、それ以外の言語全部を合わせたぐらいあるんじゃないか?
あ、C++があるか。あれもC++以外の言語の仕様を全部合わせたぐらいあるな。
0451デフォルトの名無しさん
2009/03/04(水) 11:58:39> 配列の添え字に配列渡せるって割と珍しいの?
> 多重代入くらいにはメジャーだと思ってた
よかったらPerl以外にどんな言語があるか教えてよ。
0452デフォルトの名無しさん
2009/03/04(水) 12:13:50おおむね同意だが、ちょっとコメントしますよ。
> あとこれは、連想配列にある要素を加えた結果を作る式が、たまたまPythonには
> なかったというだけの話。それをlambdaで与えれば、dictは要らなかった。
それ一応Pythonにあるだろ。
>>418氏が d.__setitem__(x, request[x]) or d って書いてる。
だから実際、418の1つ目のコードは、reduceだけで済んでてdictはない。
まあ __setitem__()とかの演算子の定義のためのメソッドを直で呼んだり、そ
れを or でつなげたりというのは、Pythonでムリクリにワンライナーを書くた
めのバッドノウハウで、418氏の言うとおりおすすめできない。
西尾泰和のブログ: Pythonでワンライナーを作成する際のノウハウ集
http://www.nishiohirokazu.org/blog/2006/08/python_12.html
6.7 operator -- 関数形式の標準演算子
http://www.python.jp/doc/release/lib/module-operator.html
0453デフォルトの名無しさん
2009/03/04(水) 12:34:27しかし最近は r 1文字で結構出てくるようになった。
統計処理ソフト R 入門 講習会資料
http://androids.happy.nu/doc/r-intro-lecture
(なんか落ちてるんでGoogleキャッシュ)
http://72.14.235.132/search?q=cache:http://androids.happy.nu/doc/r-intro-lecture&hl=ja&strip=1
R-Tips
http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html
Rの入門や言語仕様など
http://cran.r-project.org/doc/contrib/manuals-jp/
R言語 - Wikipedia
http://ja.wikipedia.org/wiki/R%E8%A8%80%E8%AA%9E
RjpWiki - RjpWiki
http://www.okada.jp.org/RWiki/
0454デフォルトの名無しさん
2009/03/04(水) 14:17:15> Perlってほんとに何でもあるなあ。
同意。あと、これからの言語って、何か売りが無いと消えていくかも。
・あると便利なもの全部詰め合わせ。
・最小限の部品と糊を容易するからあとは自分で。
・特定ニーズに特化(統計処理など)
・1分で始められるお手軽言語
・豊富な過去の資産
ただ、プログラミングの自動化、ハードウェア化が進むと上記の売りも絶対的なものじゃなくなりそうだ。
0455デフォルトの名無しさん
2009/03/04(水) 18:51:40代入式では使えないけど、PowerShellでも参照はできた
0456デフォルトの名無しさん
2009/03/04(水) 19:23:35MSのパスワードチェッカーにワンライナー打ち込んだら強度:最強とか出たんですけど。
0457デフォルトの名無しさん
2009/03/04(水) 19:54:040458デフォルトの名無しさん
2009/03/05(木) 00:54:03APLのワンライナーなら99%のクラッカーは入力すらできないだろうから安心?
>>453
Rは下手にループ書くと速度激減だからベクトル化で頭ひねるよね。
きれいにベクトルに落として応答が瞬間で戻るようになると気持ちいい。
0459デフォルトの名無しさん
2009/03/05(木) 10:25:28> あと何でも一行で書こうとするのは悪い習慣。
普通にRubyプログラム組んでて
↓
あれーこれ、どうやるんだっけな
↓
irbで試行錯誤
↓
ヤッター1行でできたよーー!
↓
プログラムにコピペして、コミットする
↓
後から見て何やってるかわからん orz
と言う流れがよくあるwww
0460デフォルトの名無しさん
2009/03/05(木) 10:36:17DSLができて流行って使おうとする時にエディタ支援が効かなかったりして泣ける・・・
Rakeとか、Rspecとかさー。
今は大分使えるけど。
しかし、今使ってみてるRadRailsまだrspec対応してないみたいなんだよな・・・
0461デフォルトの名無しさん
2009/03/05(木) 10:36:270462デフォルトの名無しさん
2009/03/05(木) 11:56:420463デフォルトの名無しさん
2009/03/05(木) 14:29:53http://d.hatena.ne.jp/fits/20090211
http://ko.meadowy.net/jrubytips/?FFI
そこはかとなく、今年の終わり位から
JRuby(^^)JRuby してきそうな気がする…
Java のライブラリが使える Ruby
Ruby を使える私!
>>> item = "これは売れるきっと売れるわ!(予測:GAEはびみょー)"
>>> tmpl = Template("""{% for item in seq %}
... {{ item }}
... {%- endfor %}""")
>>> tmpl.render(seq=range(3))
0464デフォルトの名無しさん
2009/03/05(木) 16:44:51http://www.scala-lang.org/node/1008
0465デフォルトの名無しさん
2009/03/06(金) 00:41:05癖を分かって使う分には結構なんだが
バッドノウハウの塊のようでもあり
0466デフォルトの名無しさん
2009/03/06(金) 09:45:36そんな日々の流行だけ追ってるからお前はいつまでもだめなんだよ
0467デフォルトの名無しさん
2009/03/06(金) 12:13:040468デフォルトの名無しさん
2009/03/06(金) 12:17:330469デフォルトの名無しさん
2009/03/07(土) 07:47:14新人をコボラーにせずに済むからな。
俺は、嫌だね。
0470デフォルトの名無しさん
2009/03/09(月) 00:26:450471デフォルトの名無しさん
2009/03/09(月) 16:42:20ttp://slashdot.jp/developers/09/03/09/0425211.shtml
米国のEvans Dataが500名以上の開発者/ITプロフェッショナルを対象に行ったアンケートで、
最も満足度の高いスクリプト言語はPHPであるという調査結果が出たそうだ
この調査では、回答者が利用したことのある言語について、12の評価項目に対して優れたスクリプト言語をランク付けする形で行われた。
その結果、総合得点ではPHPがトップ、以下Ruby、Python、Perl、Flex、JavaScript、ActionScript、F#、PowerShell、VB Scriptという順位になったという。
0472デフォルトの名無しさん
2009/03/09(月) 16:45:12リンク先、12の評価項目の各トップ3
Ease of Use: Ruby, PHP, Flex
Exception Handling: Ruby, Python, Powershell
Extensibility: Python, PHP, Perl
Maintainability/Readability: Ruby, PHP, Python
Cross-platform Portability: PHP, Ruby, Python
Community: Ruby, PHP, Javascript
Availability of Tools: PHP, Ruby, VB Script
Quality of Tools: PHP, Flex, Python
Performance: PHP, Perl, Python
Memory Management: Python, Perl, Flex
Client-side Scripting: Javascript, Ruby, Windows Powershell
Security: Microsoft F#, PHP, Ruby
0473デフォルトの名無しさん
2009/03/09(月) 23:36:43ナイスネタ振りw
燃えそうな話題だなあ
0474デフォルトの名無しさん
2009/03/09(月) 23:58:52米国での調査でこの結果は意外
0475デフォルトの名無しさん
2009/03/10(火) 00:25:41他はともかく、そこは主観で答えてもらっても意味ない気が…
0476デフォルトの名無しさん
2009/03/10(火) 01:18:15どうもアメリカのRubyコミュニティはフレンドリーらしい。
Martin Fowler's Bliki in Japanese - Rubyピープル
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?RubyPeople
0477デフォルトの名無しさん
2009/03/10(火) 02:16:20スレタイのPerlをケツに持ってくと、その順位だな。まあどうでもいい話だが。
0478デフォルトの名無しさん
2009/03/10(火) 06:28:54あくまでアメリカのパイソニスタとの比較な気がする
いろいろあって教条主義的になってる部分があるようなのは、向こうの人のコメントの節々に見受けられる。
向こうでのrubyは無名から言語オタが発見したところで始まったからやりやすかったんだろうな。
日本だといろいろ後援がついていて騒がしいが。
0479デフォルトの名無しさん
2009/03/10(火) 07:16:370480デフォルトの名無しさん
2009/03/10(火) 08:42:3310年前はVBとAccessでやってた仕事が、PHPとMySQLになっただけだしな。
0481デフォルトの名無しさん
2009/03/10(火) 09:47:07次点がRubyなのは以外だ・・・Pythonかと思ってた。
0482デフォルトの名無しさん
2009/03/10(火) 10:12:450483デフォルトの名無しさん
2009/03/10(火) 11:43:48とりあえず何とかいじれるという意味ではまあ入るかも知れないが、
ホントかよと思う。
0484デフォルトの名無しさん
2009/03/10(火) 12:41:290485デフォルトの名無しさん
2009/03/10(火) 13:13:04アメリカにそんなもんあったっけ?
0486デフォルトの名無しさん
2009/03/10(火) 13:48:33アメリカは高校の進度が遅いから、ここ卒業してやっとこ職業高校卒レベルだね。
0487デフォルトの名無しさん
2009/03/10(火) 14:50:33日本のRubyコミュニティも、一部を除けばnewbieに対してはそれなりに親切かと思うが。
ごちゃごちゃしてるのは一時の信者vsアンチのイメージが大きいだけでは。
あと、なまじ開発陣が日本語で喋るもんだから、よくあるいちゃもんなんかがネットに
筒抜けで、ネットイナゴがブログや2chなんかでちょっかい掛けやすいのも、ごたごたの
イメージを増幅してるっていう、その辺を差し引いて見るべき。
Pythonの開発陣が揉めてたり、コミュニティでフレームの応酬してたって、俺らやおまいら
知らんことも多いだろw
0488デフォルトの名無しさん
2009/03/10(火) 15:01:07たのむ、ギャグだと言ってくれ・・・
0489デフォルトの名無しさん
2009/03/10(火) 15:06:30おまえのネットイナゴの用法はどうかと思うが。
本来ブログに押し寄せて炎上させるタイプのネットワーカーのことを指した語で、
なんでもかんでもイナゴ呼ばわりは池田信夫の専売特許だろw
0490デフォルトの名無しさん
2009/03/10(火) 15:11:350491デフォルトの名無しさん
2009/03/10(火) 17:03:490492デフォルトの名無しさん
2009/03/10(火) 17:29:40最も満足度の高いスクリプト言語はPHP - スラッシュドット・ジャパン
http://slashdot.jp/developers/article.pl?sid=09/03/09/0425211
0494デフォルトの名無しさん
2009/03/10(火) 21:02:22> 私の回りでは、PHPを絶賛する人は例外なく他の言語が使えません。
> PHPをボロクソに言う人は、他の特定の言語のみを使っている人です。
> 多数の言語を使っている人は、少ないメリットを社交辞令のように挙げてくれます。
> (が、地方出身者の出身地を褒める京都人の様な物言いに聞こえるのは何故だ)
これ結構当を得ていると思う
0495デフォルトの名無しさん
2009/03/10(火) 21:04:400496デフォルトの名無しさん
2009/03/10(火) 21:18:55494の人が京都育ちなんだなきっと。
0497デフォルトの名無しさん
2009/03/10(火) 21:19:28岡山?岡山はええところどすなあ
0498デフォルトの名無しさん
2009/03/10(火) 21:31:06まあそう主張する人がいなくなるまでのことだろうけど
0499デフォルトの名無しさん
2009/03/10(火) 21:47:340500デフォルトの名無しさん
2009/03/10(火) 21:55:20埼玉のほうがマシ。
0501デフォルトの名無しさん
2009/03/10(火) 22:00:40いいところは色々あるけど、俺ももう住みたくないなw
0502デフォルトの名無しさん
2009/03/10(火) 22:05:390503デフォルトの名無しさん
2009/03/10(火) 22:06:22京都には遷都したが江戸には遷都してないですね
0504デフォルトの名無しさん
2009/03/10(火) 22:07:05100年以上かかるだろ。
0505デフォルトの名無しさん
2009/03/10(火) 22:07:57京都で「前の戦争」って言うと応仁の乱らしいからな
0506デフォルトの名無しさん
2009/03/10(火) 22:09:290507デフォルトの名無しさん
2009/03/10(火) 22:11:08「島根県民なめんな」とか言い出しそう
0508デフォルトの名無しさん
2009/03/10(火) 22:13:290509デフォルトの名無しさん
2009/03/10(火) 22:16:07まあ、どっちも特殊な土地柄ではある
0510デフォルトの名無しさん
2009/03/10(火) 22:16:14るびぃぃぃぃぃぃぃぃぃぃぃ
0511デフォルトの名無しさん
2009/03/10(火) 22:18:06あ、なるほどね
0512デフォルトの名無しさん
2009/03/10(火) 22:35:39■ このスレッドは過去ログ倉庫に格納されています