【Perl,PHP】LLバトル ..
[2ch|▼Menu]
372:デフォルトの名無しさん
09/03/01 18:29:08
BASIC->C->sh,awk,sed->elisp->Perl->Tcl->Python->Ruby->Java<-今ココ
インデントって...。どんなエディタつかってんだよ
作りたいものがないのに入門したいなら、Cとscheme。異論は認めない。

373:デフォルトの名無しさん
09/03/01 19:11:28
>>372
まあプログラムがどう実行されるかを理解するなら両者が基本だよね。
それ以前のプログラミング手習いの段階なら多分Py,R,JSあたりで打鍵に抵抗なくした方がいいが。

374:デフォルトの名無しさん
09/03/02 09:36:59
レンタルサーバーならさくらインターネットがパイソンもルビーも対応してるようですが
どなたかご利用の方いらっしゃいましたら使用感を教えてください

375:デフォルトの名無しさん
09/03/02 09:43:31
レンタル鯖板いけ

376:デフォルトの名無しさん
09/03/02 09:44:33
RubyもPythonも、インタープリタとして使うだけなら使用感も何もないのでは。
バージョン通りの動きをするだろ。

WEBシステムの実装言語として使うなら、本体よりもむしろFastCGIやmod_**の方の
設定の可否などが大きいはず。そういうことを聞いてるのかな?

377:デフォルトの名無しさん
09/03/02 09:46:38
>>374
レンタルサーバの使用感ならhosting板、
CGIのバックとしての使用感ならwebprog板で訊いて下さい。

378:デフォルトの名無しさん
09/03/02 13:54:25
以下の内容は、某スレに書き込んだものなんだけど、自分には結構面白いやり
取りになったので、いろんな言語でやってみたくなった。

ある大きな連想配列から、いくつかのキーを持つ要素だけを取り出した、部分
連想配列を作りたい。

// PHP版
$request = array('hoge'=>1, 'fuga'=>2, 'piyo'=>...
//これからキーが hoge, fuga の物だけを取り出すとすると、

foreach (array('hoge', 'fuga') as $param) {
$a[$param] = $request[$param];
}

これ、いろんな言語で、なるべく簡潔に書くにはどうしたらいいだろう?


379:デフォルトの名無しさん
09/03/02 14:11:16
>>378
Perlで
my %request = ('hoge'=>1, 'fuga'=>2, 'piyo'=>3);
my %a = (); my @keys = ('hoge', 'fuga');
@a{@keys} = @request{@keys};

ググってサンプルを見ながら適当に。なんかおかしいorもっと簡潔に書けるかも。

380:デフォルトの名無しさん
09/03/02 15:00:14
>>379
Perl って、
・連想配列の引数に、配列を与えられるのか。すげー。
・変数名のプレフィックスが型によって違うから、目がちかちかするのう。

Perl講座 2章 [変数]
URLリンク(www.site-cooler.com)


381:デフォルトの名無しさん
09/03/02 15:02:53
ちなみに、ほかに書き込んだのは

PHP@プログラム板
スレリンク(tech板:341-番)

Pythonのお勉強 Part32
スレリンク(tech板:275-番)

382:デフォルトの名無しさん
09/03/02 15:07:09
JavaScriptは多分愚直にループするしかないかな?
Rubyはなんかメソッドうにょうにょでできそうだけど、俺は知らね。

383:デフォルトの名無しさん
09/03/02 15:08:14
>>380
配列周りでぼんぼことフラット化する癖は……

384:デフォルトの名無しさん
09/03/02 15:32:05
バベル案内
URLリンク(www.aoky.net)

> Perlは夏の台湾の通りの上で破裂したマッコウクジラだ。はらわたがそこら
> 中に飛び散って、車や自転車や歩行者を覆っている。それがPerlだ。本当に
> チャーミングだ 。
(略)
> Perlがリスト処理をできないのは、リストを自動的に平坦にするという救い
> がたく愚かな決断をラリーが初期にしたことによる。そのため(1, 2, (3,
> 4))は不思議なことに(1, 2, 3, 4)に変わってしまう。あなたはこんな風になっ
> てほしいと思ったことはないだろう。しかしラリーがある日たまたま何かの
> 問題でそうなるのが都合が良かったため、それ以来Perlのデータ構造はまっ
> たくの破裂したクジラとなってしまったのだ。


385:デフォルトの名無しさん
09/03/02 15:38:56
>>384
釣れますか?

386:デフォルトの名無しさん
09/03/02 15:55:14
Rubyをよく知らない俺様が通りますよ。

irb(main):001:0> request = {'hoge'=>1, 'fuga'=>2, 'piyo'=>3}
=> {"fuga"=>2, "hoge"=>1, "piyo"=>3}
irb(main):002:0> a = {}
=> {}
irb(main):003:0> ["hoge", "fuga"].map{|x| a[x] = request[x]}
=> [1, 2]
irb(main):004:0> a
=> {"fuga"=>2, "hoge"=>1}

これではforループがmapに変わっただけだな。

387:デフォルトの名無しさん
09/03/02 16:20:28
Rubyは中途半端な私が通りますよ。
request = { 'hoge' => 1, 'fuga' => 2, 'piyo' => 3 }
keys = ['hoge', 'fuga']
a = Hash[*keys.zip(request.values_at(*keys)).flatten]

388:デフォルトの名無しさん
09/03/02 16:26:37
>>387
*keys の * ってなにをするものなの?
良かったら教えて。ググりようがないので。

389:デフォルトの名無しさん
09/03/02 16:38:22
>>388
中を展開すると理解してる。ちょっと違うかもしれないけど。
こうすると分かりやすいと思う。
p [1, 2, 3]
p *[1, 2, 3]

390:デフォルトの名無しさん
09/03/02 16:53:46
グモ

391:デフォルトの名無しさん
09/03/02 16:56:04
>>389
ごめん、やっぱりよく分からない。
p *[1, 2, 3] は動くけど、
*[1, 2, 3] は動かない。どうなってるの?

リファレンスのどこに載ってるか、教えてもらえるととてもうれしい。

URLリンク(www.ruby-lang.org)

392:デフォルトの名無しさん
09/03/02 16:57:47
メソッド呼び出し のところ

393:デフォルトの名無しさん
09/03/02 17:40:45
>>392
> メソッド呼び出し のところ

そういうことか!やっとわかった。ありがとう。
メソッド呼び出し - Rubyリファレンスマニュアル
URLリンク(www.ruby-lang.org)

ちなみに Pythonだと、* で配列の展開、** で連想配列の展開になる。

>>> def hoge(a, b, c):
... return a

>>> hoge(*['a', 'b', 'c'])
'a'
>>> hoge(**{'a':1, 'b':2, 'c':3})
1
4. その他の制御フローツール
URLリンク(www.python.jp)

なるほどRubyにもあったのか。

正直に言うと、Hash[], Enumerable#zip, Hash#values_at とか、全部知らなかった。
Rubyってホントにメソッドが山盛りだな。
まあ俺が無知なだけか。

394:デフォルトの名無しさん
09/03/02 17:42:26
>>391
>>392さんの通り。
URLリンク(www.ruby-lang.org)

多重代入でも最後のメンバー限定で展開できたり。

a, b, c = [1, *[2, 3]]
p a, b, c

URLリンク(www.ruby-lang.org)

多重代入の左辺と、メソッドの仮引数で意味が変わったりする謎アイテム。

395:デフォルトの名無しさん
09/03/02 17:44:06
ぐは。

396:デフォルトの名無しさん
09/03/02 18:00:39
交代リストからハッシュを作れるRubyの仕様は、古き良き時代のLISPの香りが
するような。


397:デフォルトの名無しさん
09/03/02 18:21:30
静的型の言語はお呼びじゃないか。
標準ライブラリのtemplateをひっかきまわすのは面倒そうなのでこれで。

int[string] request = ["hoge":1, "fuga":2, "piyo":3];
auto keys = ["hoge", "fuga"];

typeof(request) result;
foreach(i; keys) if(i in request) result[i] = request[i];

398:デフォルトの名無しさん
09/03/02 18:51:45
>>397
何かと思ったが、これは C++0x か!
すげえ、こんな風に書けるようになるのか!

399:デフォルトの名無しさん
09/03/02 19:09:04
しかしロジックは>>378のforループと変わっていないんだな。

400:デフォルトの名無しさん
09/03/02 19:22:37
いや、D。
0xだとdecltypeだったりstd::for_eachだったりunordered_mapだったりすると思うわけだが。
ロジックはまるっきり同じ。
組み込みの連想配列を持っていてfor .. in相当の構文がある言語ならなんでもこの形式で書けるんじゃないのかな

401:デフォルトの名無しさん
09/03/02 19:25:21
やった、RubyのEnumerable#injectで書けたよママン。

['hoge','fuga'].inject({}){|x, y| x[y]=request[y]; x}

402:デフォルトの名無しさん
09/03/02 19:40:53
Ruby の inject が使えるなら Python の reduce も使えるはずだ。

def func(x, y):
    x[y]=request[y];
    return x

reduce(func, ['hoge', 'fuga'], {})

なんで無名関数使わないのかって?
Pythonのlambdaは代入とかできないんだようるせえな。
いいんだよPythonでは名前空間の不足に困ったりしないから。
あと何でも一行で書こうとするのは悪い習慣。

403:デフォルトの名無しさん
09/03/02 19:56:39
>>400
> いや、D。
なんだそうか。C++に連想配列リテラルが組み込まれたかと思って驚いちゃった
よ。恥ずかしいな。

D vs C++0x - プログラミング言語 D 2.0
URLリンク(www.kmonos.net)


404:デフォルトの名無しさん
09/03/02 19:59:17
ちんこ

405:デフォルトの名無しさん
09/03/02 20:10:25
どれも別に短くはなっていない件について。

406:デフォルトの名無しさん
09/03/02 20:17:38
わざとキモく書いてみるテスト
$request = @{hoge=1; "fuga"=2; 'piyo'=3}
$a = @{};
echo hoge,'fuga' | % { $a.$_ = $request[$_] }

407:デフォルトの名無しさん
09/03/02 20:22:05
>>402
dict(reduce(lambda x, y: x + [(y, request[y])], ['b','c'], []))

408:デフォルトの名無しさん
09/03/02 20:24:01
dict(reduce(lambda x, y: x + [(y, request[y])], ['hage','fuga'], []))

409:402
09/03/02 20:36:40
>>407-408 まいりました。おまい頭いいな。

410:デフォルトの名無しさん
09/03/02 20:40:14
どれも大体分かるけど、>>406 だけ全然分からん。

411:デフォルトの名無しさん
09/03/02 20:40:26
何でも一行で書こうとするのは悪い習慣

412:デフォルトの名無しさん
09/03/02 20:53:22
python の dict って hoge.append('key', value) みたいなこと出来ないんですか?

413:デフォルトの名無しさん
09/03/02 21:00:10
>>406は言語すらわからん。
Perlっぽいが、動くとは思えん。これ何?

414:デフォルトの名無しさん
09/03/02 21:00:57
>>412
知らんけど、無さそうだね。
hoge['key'] = value じゃ駄目?

3.8 マップ型
URLリンク(www.python.jp)



415:デフォルトの名無しさん
09/03/02 21:03:00
>>407-408
最後にdictを使うのなら、injectじゃなくて、リスト内包表記やmapの方が素直
じゃね?Python本スレではそうなってた。


416:デフォルトの名無しさん
09/03/02 21:07:51
>>410,413
PowerShellですよ
どうせならはっきりキモイと言ってくれても私は一向に構わん
% は Foreach-Object というコマンドのエイリアスで
ハッシュテーブルへは配列表記プロパティ表記どちらでも可能なのでこんな感じでキモく書けます

417:デフォルトの名無しさん
09/03/02 21:16:02
>>412
{}.__setitem__(k, v)

418:デフォルトの名無しさん
09/03/02 21:16:44
>>412
>>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'])
のほうがずっと素直で短く読みやすいからね

419:デフォルトの名無しさん
09/03/02 22:00:38
>>416
なるほど、キモいけど面白れー!

420:デフォルトの名無しさん
09/03/02 22:15:29
>>418
内包記法はうらやましい

421:341
09/03/02 22:30:41
なんか、このスレでも結構盛り上がったかな。ありがとうございます。

ちなみに元の言語であるPHPにも、forループしかないわけじゃなくて、むやみ
やたらと沢山のarray関連関数がある。
URLリンク(jp2.php.net)

これを利用したら簡潔にならないかと思ったんだが、

array_intersect_key($request, array_flip(array('hoge', 'fuga')));

関数名の長いせいもあって、どうも垢抜けないのう。

422:デフォルトの名無しさん
09/03/02 22:47:33
Python人口多いな。
Perl とか Ruby とか、もっと面白いことできないの?

423:デフォルトの名無しさん
09/03/02 22:52:03
「面白いこと」を定義してください

424:デフォルトの名無しさん
09/03/02 23:00:41
じゃ、Rubyで。>>387とあんまり変わらないか。
Hash[*['hoge','fuga'].map {|x| [x, request[x]]}.flatten]

個人的には、リスト内包表記より、Rubyのmapとブロックのほうが好きだな。


425:デフォルトの名無しさん
09/03/02 23:06:06
>>423
Rubyはさておき、Perl だったら、とにかく変態的なことをしてほしい。
ほかの言語だったらありえないようなこと。

426:デフォルトの名無しさん
09/03/02 23:13:37
>>423
スレリンク(tech板:412番)
>中二設定豊富

427:デフォルトの名無しさん
09/03/02 23:15:50
>>425
>>379の縦横無尽の記号乱舞リスト展開くらいではまだ足らんと申すか

428:デフォルトの名無しさん
09/03/02 23:21:58
>>427
いや、逆。あれで火がついちゃった。Perlすげえ。
もっと何か見せてほしい。

429:デフォルトの名無しさん
09/03/02 23:26:58
目的と手段を取り違えている典型的な例だな

430:デフォルトの名無しさん
09/03/02 23:30:32
>>424
> 個人的には、リスト内包表記より、Rubyのmapとブロックのほうが好きだな。

ブロック内に複数行でも書けるから、凝ったことがやりやすいよね。

Pythonのリスト内包表記だと、長くなるとだんだん読み書きしづらくなる。
そのうち業を煮やして、手作業でforループに書き換えることに。
そのときの面倒さと言ったら。
これって俺だけ?

431:デフォルトの名無しさん
09/03/02 23:31:11
つってもありゃイディオムだしな。
リファレンスでごちゃごちゃしたって簡潔にも面白くもならんだろうし。
他の例のようにループ(?)にするとこんな感じかな。

my %a = map { ($_, $request{$_}) } ('hoge', 'fuga');

432:デフォルトの名無しさん
09/03/02 23:31:22
perlのハードルがあがっているところ普通で申し訳ないが
面白そうなので俺も書いてみた。
for(keys %request){if(/hoge/||/fuga/){$r{$_}=$request{$_};}}
grepで出来んかな

433:デフォルトの名無しさん
09/03/02 23:32:24
>>429
ええそうです。手段のためなら目的を選びませんとも!


434:デフォルトの名無しさん
09/03/02 23:43:30
あー、やっと気づいた。>>407-408って、Schemeとか関数型言語で多用される
「継続渡し」スタイルだ。
だから副作用の書けないPythonのlambdaでも、ちゃんと結果を累積できるんだ。


>>426
Haskell わかんないから君が書いてよ。

435:デフォルトの名無しさん
09/03/02 23:45:22
>>431>>432を合わせて無理矢理grepも使ってみた

my %a = map {$_, $request{$_}} grep {/^hoge|fuga$/} keys %request;

436:デフォルトの名無しさん
09/03/02 23:58:08
Perlにはgrepなんて関数があるのかよ!
すげえ、もう意味が分からない。

437:デフォルトの名無しさん
09/03/02 23:58:43
>>435
おお、さすがム版!
grep版がすぐに出てきて、個人的に満足した。ありがとう。

438:378
09/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 なんか、行き過ぎるくらい汎用言語化している。

つうことで、言語の進化には、汎用言語<-->専用言語の逆向きの流れが同時に
存在していて、人が言語の良し悪しについて議論する場合、どっちを重視する
かが人によって違うのが、話のかみ合わない一因じゃないかなと思っている。


439:378
09/03/03 01:54:26
とは言うものの、いきなり>>379で Perlが添え字に配列を与えられることを教
えられて、用意した結論がいきなり疑わしくなってしまった。Perlは存在が反則。

つうことで、いろんなコードが見られて自分は面白かったです。皆さんありがとう。

440:デフォルトの名無しさん
09/03/03 02:42:39
request[c('hoge', 'fuga')] で値だけじゃなくキーも返すっていうのは良いのか悪いのか

441:デフォルトの名無しさん
09/03/03 02:45:32
>>434
なんかよくわからんこと書いてるな。

fold, inject, reduce 自体が継続渡しスタイルなんだよ。

>>407は、副作用無しに作れて、あとで連想配列に変えられるような
処理結果の累積方法を見つけたのが偉いの。

あとこれは、連想配列にある要素を加えた結果を作る式が、たまたまPythonには
なかったというだけの話。それをlambdaで与えれば、dictは要らなかった。


442:デフォルトの名無しさん
09/03/03 03:04:48
>>440
> request[c('hoge', 'fuga')] で値だけじゃなくキーも返すっていうのは良いのか悪いのか

問題ない。
キーを持つベクトルと、持たないベクトルとで、そのまま演算できるから、
値だけの場合と同様に扱える。

> (c(hoge=1, fuga=2) + c(10, 20))
hoge fuga
  11   22


443:デフォルトの名無しさん
09/03/03 03:09:09
あれ、なんか全体にカッコがついてしまった。とりあえず別に要らない。
c(hoge=1, fuga=2) + c(10, 20)

444:デフォルトの名無しさん
09/03/03 03:18:45
>>442
あー、いわゆる"配列"と"連想配列"を差別しないのが"ベクトル"なわけかな

445:デフォルトの名無しさん
09/03/03 03:47:46
>>444
まあそんな感じ。

もう少し言うと、ベクトルは基本的には、自然数が添え字の単なる配列。
だけど「キー」を付けると、キーの値でも要素にアクセスできるようになる。
連想配列としては擬似的なもの。

だから、「キー」(正確には「name属性」)を持つベクトル同士を足すと、
> c(hoge=1, fuga=2) + c(fuga=10, piyo=20)
hoge fuga
11 22

単に要素の順番で足されて、後者のname属性は結果には残らない。
この辺はちょっとガッカリ?

真に配列と連想配列をうまく統合したのは、PHPだと思う。

446:デフォルトの名無しさん
09/03/03 04:56:46
>>438
無駄に汎用言語化するという流れは、まああるだろうね。
PerlとPHPは別にオブジェクト指向なんか実装する必要はなかったと思うし、
まあ実際無理に汎用言語化された機能の使われ方も微妙。

447:デフォルトの名無しさん
09/03/03 06:15:54
>>445
SQLのUNIONみたいなもんですかね

448:デフォルトの名無しさん
09/03/03 21:24:22
配列の添え字に配列渡せるって割と珍しいの?
多重代入くらいにはメジャーだと思ってた

449:デフォルトの名無しさん
09/03/03 23:58:33
>>445

>もう少し言うと、ベクトルは基本的には、自然数が添え字の単なる配列。
>だけど「キー」を付けると、キーの値でも要素にアクセスできるようになる。
>連想配列としては擬似的なもの。

擬似ハッシュ(Pseudo-Hash)なら、Perlにもv5.005の頃からあったけど、
そのデータ構造上、メモリ効率やパフォーマンスに悪影響があるということで、
v5.9.5で廃止された。これ豆

450:デフォルトの名無しさん
09/03/04 11:57:12
>>449
Perlってほんとに何でもあるなあ。
Perlの言語仕様って、それ以外の言語全部を合わせたぐらいあるんじゃないか?

あ、C++があるか。あれもC++以外の言語の仕様を全部合わせたぐらいあるな。

451:デフォルトの名無しさん
09/03/04 11:58:39
>>448
> 配列の添え字に配列渡せるって割と珍しいの?
> 多重代入くらいにはメジャーだと思ってた

よかったらPerl以外にどんな言語があるか教えてよ。

452:デフォルトの名無しさん
09/03/04 12:13:50
>>441
おおむね同意だが、ちょっとコメントしますよ。

> あとこれは、連想配列にある要素を加えた結果を作る式が、たまたまPythonには
> なかったというだけの話。それをlambdaで与えれば、dictは要らなかった。

それ一応Pythonにあるだろ。
>>418氏が d.__setitem__(x, request[x]) or d って書いてる。
だから実際、418の1つ目のコードは、reduceだけで済んでてdictはない。

まあ __setitem__()とかの演算子の定義のためのメソッドを直で呼んだり、そ
れを or でつなげたりというのは、Pythonでムリクリにワンライナーを書くた
めのバッドノウハウで、418氏の言うとおりおすすめできない。

西尾泰和のブログ: Pythonでワンライナーを作成する際のノウハウ集
URLリンク(www.nishiohirokazu.org)

6.7 operator -- 関数形式の標準演算子
URLリンク(www.python.jp)


453:デフォルトの名無しさん
09/03/04 12:34:27
R の最大の欠点の一つは、ググりにくいこと。
しかし最近は r 1文字で結構出てくるようになった。

統計処理ソフト R 入門 講習会資料
URLリンク(androids.happy.nu)
(なんか落ちてるんでGoogleキャッシュ)
URLリンク(72.14.235.132)

R-Tips
URLリンク(cse.naro.affrc.go.jp)

Rの入門や言語仕様など
URLリンク(cran.r-project.org)

R言語 - Wikipedia
Wikipedia項目リンク

RjpWiki - RjpWiki
URLリンク(www.okada.jp.org)


454:デフォルトの名無しさん
09/03/04 14:17:15
>>450
> Perlってほんとに何でもあるなあ。
同意。あと、これからの言語って、何か売りが無いと消えていくかも。

・あると便利なもの全部詰め合わせ。
・最小限の部品と糊を容易するからあとは自分で。
・特定ニーズに特化(統計処理など)
・1分で始められるお手軽言語
・豊富な過去の資産

ただ、プログラミングの自動化、ハードウェア化が進むと上記の売りも絶対的なものじゃなくなりそうだ。

455:デフォルトの名無しさん
09/03/04 18:51:40
>>451
代入式では使えないけど、PowerShellでも参照はできた

456:デフォルトの名無しさん
09/03/04 19:23:35
Perlは何でもアリなのは良いんだが、すぐに記号だらけになるのがなぁ。
MSのパスワードチェッカーにワンライナー打ち込んだら強度:最強とか出たんですけど。

457:デフォルトの名無しさん
09/03/04 19:54:04
大体どの言語のワンライナーでも強度は最強だろw

458:デフォルトの名無しさん
09/03/05 00:54:03
>>457
APLのワンライナーなら99%のクラッカーは入力すらできないだろうから安心?

>>453
Rは下手にループ書くと速度激減だからベクトル化で頭ひねるよね。
きれいにベクトルに落として応答が瞬間で戻るようになると気持ちいい。

459:デフォルトの名無しさん
09/03/05 10:25:28
>>402
> あと何でも一行で書こうとするのは悪い習慣。

普通にRubyプログラム組んでて
 ↓
あれーこれ、どうやるんだっけな
 ↓
irbで試行錯誤
 ↓
ヤッター1行でできたよーー!
 ↓
プログラムにコピペして、コミットする
 ↓
後から見て何やってるかわからん orz

と言う流れがよくあるwww

460:デフォルトの名無しさん
09/03/05 10:36:17
RubyはDSLが生まれやすいんだけど、
DSLができて流行って使おうとする時にエディタ支援が効かなかったりして泣ける・・・

Rakeとか、Rspecとかさー。
今は大分使えるけど。

しかし、今使ってみてるRadRailsまだrspec対応してないみたいなんだよな・・・

461:デフォルトの名無しさん
09/03/05 10:36:27
コメント3行くらいつけとけば無問題

462:デフォルトの名無しさん
09/03/05 11:56:42
わかりやすいコードをコメントとしてつけておけばおk

463:デフォルトの名無しさん
09/03/05 14:29:53
URLリンク(blog.headius.com)
URLリンク(d.hatena.ne.jp)
URLリンク(ko.meadowy.net)

そこはかとなく、今年の終わり位から
JRuby(^^)JRuby してきそうな気がする…

Java のライブラリが使える Ruby
Ruby を使える私!

>>> item = "これは売れるきっと売れるわ!(予測:GAEはびみょー)"
>>> tmpl = Template("""{% for item in seq %}
... {{ item }}
... {%- endfor %}""")
>>> tmpl.render(seq=range(3))

464:デフォルトの名無しさん
09/03/05 16:44:51
Twitterがパフォーマンスを理由にRubyから一部Scalaに乗り換えた模様
URLリンク(www.scala-lang.org)

465:デフォルトの名無しさん
09/03/06 00:41:05
GAEは他のfwと同じように良いところも悪いところもあるね
癖を分かって使う分には結構なんだが
バッドノウハウの塊のようでもあり

466:デフォルトの名無しさん
09/03/06 09:45:36
>>463
そんな日々の流行だけ追ってるからお前はいつまでもだめなんだよ

467:デフォルトの名無しさん
09/03/06 12:13:04
日々、COBOLのソースを追っかけてますが何か

468:デフォルトの名無しさん
09/03/06 12:17:33
君はそれでいい。

469:デフォルトの名無しさん
09/03/07 07:47:14
誰かが犠牲になってコボラーになってれば
新人をコボラーにせずに済むからな。
俺は、嫌だね。

470:デフォルトの名無しさん
09/03/09 00:26:45
尊敬されたがるが他人への敬意は無い

471:デフォルトの名無しさん
09/03/09 16:42:20
最も満足度の高いスクリプト言語はPHP
URLリンク(slashdot.jp)
米国のEvans Dataが500名以上の開発者/ITプロフェッショナルを対象に行ったアンケートで、
最も満足度の高いスクリプト言語はPHPであるという調査結果が出たそうだ
この調査では、回答者が利用したことのある言語について、12の評価項目に対して優れたスクリプト言語をランク付けする形で行われた。
その結果、総合得点ではPHPがトップ、以下Ruby、Python、Perl、Flex、JavaScript、ActionScript、F#、PowerShell、VB Scriptという順位になったという。

472:デフォルトの名無しさん
09/03/09 16:45:12
>>471
リンク先、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

473:デフォルトの名無しさん
09/03/09 23:36:43
>>472
ナイスネタ振りw
燃えそうな話題だなあ

474:デフォルトの名無しさん
09/03/09 23:58:52
> Community: Ruby, PHP, Javascript
米国での調査でこの結果は意外

475:デフォルトの名無しさん
09/03/10 00:25:41
アンケートにメモリ管理についてどうかって項目があったのかな
他はともかく、そこは主観で答えてもらっても意味ない気が…


476:デフォルトの名無しさん
09/03/10 01:18:15
>>474
どうもアメリカのRubyコミュニティはフレンドリーらしい。

Martin Fowler's Bliki in Japanese - Rubyピープル
URLリンク(capsctrl.que.jp)


477:デフォルトの名無しさん
09/03/10 02:16:20
>>471
スレタイのPerlをケツに持ってくと、その順位だな。まあどうでもいい話だが。

478:デフォルトの名無しさん
09/03/10 06:28:54
>>476
あくまでアメリカのパイソニスタとの比較な気がする
いろいろあって教条主義的になってる部分があるようなのは、向こうの人のコメントの節々に見受けられる。
向こうでのrubyは無名から言語オタが発見したところで始まったからやりやすかったんだろうな。
日本だといろいろ後援がついていて騒がしいが。

479:デフォルトの名無しさん
09/03/10 07:16:37
F#は知らんが、Securityで二番手につくPHPはさすがだな

480:デフォルトの名無しさん
09/03/10 08:42:33
まあ糞な仕事はやっつけ言語で十分ということだろ。
10年前はVBとAccessでやってた仕事が、PHPとMySQLになっただけだしな。

481:デフォルトの名無しさん
09/03/10 09:47:07
>>471
次点がRubyなのは以外だ・・・Pythonかと思ってた。

482:デフォルトの名無しさん
09/03/10 10:12:45
汚れ仕事ランキングですか

483:デフォルトの名無しさん
09/03/10 11:43:48
Maintainability/ReadabilityにPHPか。
とりあえず何とかいじれるという意味ではまあ入るかも知れないが、
ホントかよと思う。

484:デフォルトの名無しさん
09/03/10 12:41:29
人口が多いだけだろ。専門卒のw

485:デフォルトの名無しさん
09/03/10 13:13:04
>>484
アメリカにそんなもんあったっけ?

486:デフォルトの名無しさん
09/03/10 13:48:33
Community Collegeってのがあって、短大とか専門学校レベルの教育をやってる。
アメリカは高校の進度が遅いから、ここ卒業してやっとこ職業高校卒レベルだね。

487:デフォルトの名無しさん
09/03/10 14:50:33
>>478
日本のRubyコミュニティも、一部を除けばnewbieに対してはそれなりに親切かと思うが。
ごちゃごちゃしてるのは一時の信者vsアンチのイメージが大きいだけでは。

あと、なまじ開発陣が日本語で喋るもんだから、よくあるいちゃもんなんかがネットに
筒抜けで、ネットイナゴがブログや2chなんかでちょっかい掛けやすいのも、ごたごたの
イメージを増幅してるっていう、その辺を差し引いて見るべき。
Pythonの開発陣が揉めてたり、コミュニティでフレームの応酬してたって、俺らやおまいら
知らんことも多いだろw

488:デフォルトの名無しさん
09/03/10 15:01:07
>Memory Management: Python, Perl, Flex
たのむ、ギャグだと言ってくれ・・・

489:デフォルトの名無しさん
09/03/10 15:06:30
>>487
おまえのネットイナゴの用法はどうかと思うが。
本来ブログに押し寄せて炎上させるタイプのネットワーカーのことを指した語で、
なんでもかんでもイナゴ呼ばわりは池田信夫の専売特許だろw

490:デフォルトの名無しさん
09/03/10 15:11:35
おk。有象無象に訂正しとく。

491:デフォルトの名無しさん
09/03/10 17:03:49
例外処理が優れてるってどういう事を言うんだろ

492:デフォルトの名無しさん
09/03/10 17:29:40
スラドにも出てた。

最も満足度の高いスクリプト言語はPHP - スラッシュドット・ジャパン
URLリンク(slashdot.jp)


493:492
09/03/10 17:36:20
って、>>471に貼ってあるのそのまんまだった。スマソ。

494:デフォルトの名無しさん
09/03/10 21:02:22
slashから引用
> 私の回りでは、PHPを絶賛する人は例外なく他の言語が使えません。
> PHPをボロクソに言う人は、他の特定の言語のみを使っている人です。
> 多数の言語を使っている人は、少ないメリットを社交辞令のように挙げてくれます。
> (が、地方出身者の出身地を褒める京都人の様な物言いに聞こえるのは何故だ)

これ結構当を得ていると思う

495:デフォルトの名無しさん
09/03/10 21:04:40
地方出身者の出身地を褒める京都人

496:デフォルトの名無しさん
09/03/10 21:18:55
京都って地方じゃないのか?w
494の人が京都育ちなんだなきっと。

497:デフォルトの名無しさん
09/03/10 21:19:28
あなたどこからきはったの?
岡山?岡山はええところどすなあ

498:デフォルトの名無しさん
09/03/10 21:31:06
京都はいまだ日本の首都である疑いもあるらしいぞ
まあそう主張する人がいなくなるまでのことだろうけど

499:デフォルトの名無しさん
09/03/10 21:47:34
なんといっても「府」ですからw

500:デフォルトの名無しさん
09/03/10 21:55:20
住みたくねえトコだけどな>>京都

埼玉のほうがマシ。

501:デフォルトの名無しさん
09/03/10 22:00:40
ラーメン屋が多くて美味い、本屋が多い、祇園で馬券を買える
いいところは色々あるけど、俺ももう住みたくないなw

502:デフォルトの名無しさん
09/03/10 22:05:39
七代住んだら住民と認めてもらえるらしいから頑張れ

503:デフォルトの名無しさん
09/03/10 22:06:22
>>498
京都には遷都したが江戸には遷都してないですね

504:デフォルトの名無しさん
09/03/10 22:07:05
まず一代目かよw
100年以上かかるだろ。

505:デフォルトの名無しさん
09/03/10 22:07:57
七代って200年くらいか
京都で「前の戦争」って言うと応仁の乱らしいからな

506:デフォルトの名無しさん
09/03/10 22:09:29
完全に京都の話になっててワロタw

507:デフォルトの名無しさん
09/03/10 22:11:08
「京都人なめんな」とか
「島根県民なめんな」とか言い出しそう

508:デフォルトの名無しさん
09/03/10 22:13:29
なぜ島根県が出てきたんだw

509:デフォルトの名無しさん
09/03/10 22:16:07
出雲が京都並に排他的だからかw
まあ、どっちも特殊な土地柄ではある

510:デフォルトの名無しさん
09/03/10 22:16:14
>>508
るびぃぃぃぃぃぃぃぃぃぃぃ

511:デフォルトの名無しさん
09/03/10 22:18:06
>>510
あ、なるほどね

512:デフォルトの名無しさん
09/03/10 22:35:39
島根県のRuby利用率は全国のそれよりも高い

513:デフォルトの名無しさん
09/03/10 22:39:59
蛇退治した神話があるところだよね

514:デフォルトの名無しさん
09/03/10 22:43:56
URLリンク(homepage1.nifty.com)

515:デフォルトの名無しさん
09/03/10 22:48:32
ワニに身ぐるみはがされるのは隣の県だっけ?

516:デフォルトの名無しさん
09/03/10 22:55:35
>>512
他の言語について調べて見たけどネットに載ってないね
外国ではそういうのはプライバシーになるのかな?

517:デフォルトの名無しさん
09/03/10 23:48:06
>>515
鮫じゃなかったかな

518:デフォルトの名無しさん
09/03/10 23:50:09
>>517
ワニという名前のサメらしい

519:デフォルトの名無しさん
09/03/11 00:08:44
皮をはがれて、しくしくウサギが泣いていたら、
たまたまとおりかかった天皇の集団が、
「海の塩水で体を洗うとよくなるよ」
と、とんでもないウソ知識を教えて、

それを真に受けたウサギが言われたとおりにすると、
ますます痛くなって、さらに泣いたという。

520:デフォルトの名無しさん
09/03/11 00:11:18
兄弟同士で殺し合いはするし親殺しも子殺しも当たり前の神話の世界は、実はかなりエグいw

521:デフォルトの名無しさん
09/03/11 00:15:13
女子トイレ覗いたり
まんこに棒ぐりぐり
なんてのもあるマジ


522:デフォルトの名無しさん
09/03/11 01:05:35
蛇はPythonでいいんだろうが、ワニは何だ?Javaか?

523:デフォルトの名無しさん
09/03/11 03:42:31
羊だろjk

524:デフォルトの名無しさん
09/03/11 06:47:38
URLリンク(www.java-animal.org)

525:デフォルトの名無しさん
09/03/11 07:07:01
動物虐待は遺憾罠

526:デフォルトの名無しさん
09/03/12 18:07:03
>>521
神話学んでみたいので、できればなんていう単語でぐぐれば良いか教えて下さい。

527:デフォルトの名無しさん
09/03/12 22:24:32
自分の関心のある問題がどんな言葉で語られてるか分からないという問題。
うむ、しばしばありますな。


528:デフォルトの名無しさん
09/03/12 22:40:31
日本神話とギリシャ神話は変態のオンパレードだぞ。
変なところで人間臭いから、よけいに変態性が際立って見える。

529:デフォルトの名無しさん
09/03/12 22:59:25
>>526
神話の世界(というか古代日本人)の性的奔放さを垣間見たいなら、
河出文庫から出ている「日本の神話」がおすすめ。
中学生が喜びそうなエロ話がいっぱいw

530:デフォルトの名無しさん
09/03/12 23:47:49
俺の体の出っ張った部分を、おまえのへっこんだ部分に

531:デフォルトの名無しさん
09/03/13 00:11:37
ギリシャ神話にシスコンの神が妹を謀って恋人を殺させてヒャッハーってのがあったよな
あれは衝撃

532:デフォルトの名無しさん
09/03/13 01:46:50
>>526

ホト

ひめ

533:デフォルトの名無しさん
09/03/13 07:02:45
…ところでココ何板だっけ

534:デフォルトの名無しさん
09/03/13 17:12:43
>>529
>>532
ありがとうございます!

スレ違い&板違いスマソでした。

535:デフォルトの名無しさん
09/03/14 01:01:30
過疎w

536:デフォルトの名無しさん
09/03/14 12:36:56
9x1=9
9x2=18 -> 1+8=9
9x3=27 -> 2+7=9
...
9x9=81 -> 8+1=9
のように9に1〜9までの数字を掛けた数の各桁の数字を足すと9になりますが
これをプログラム的に証明しようとするとどうなりますか


537:デフォルトの名無しさん
09/03/14 12:40:53

9 * n = (10 - 1) * n = 10 * n - n = 10 * (n - 1) + 10 - n (0 < n < 10)

10 * (n - 1) + 10 - n ≡ n - 1 - n ≡ - 1 ≡ 9 (mod 10)



538:デフォルトの名無しさん
09/03/14 14:38:49
証明自体をプログラミングでやるのはキツくね?
証明が正しいかどうか検証するのはプログラミングの得意分野だけれども

539:デフォルトの名無しさん
09/03/14 15:10:25
81通りしかないんだから、全部計算すれば一瞬だろ

540:デフォルトの名無しさん
09/03/14 15:10:46
9通りでしたorz

541:デフォルトの名無しさん
09/03/14 15:12:03
この上なく正しい「プログラム的に証明」の方法だな

542:デフォルトの名無しさん
09/03/14 15:15:31
この場合はしらみつぶしに全部検証すれば十分では
9通りしかないし

Ruby1.8なら

(1 .. 9).all? do |i|
 j = i * 9
 9 == (j % 10) + (j / 10)
end

……こういう話ではない?

543:デフォルトの名無しさん
09/03/14 15:23:13
プログラム的にもなにも、手計算でも全部試した方が早いがな

544:デフォルトの名無しさん
09/03/14 15:55:27
>>537, >>542
それって証明なのか?

> 9x1=9
> 9x2=18 -> 1+8=9
> 9x3=27 -> 2+7=9
> ...
> 9x9=81 -> 8+1=9
> のように9に1〜9までの数字を掛けた数の各桁の数字を足すと9になります

という命題をプログラムで表現しただけで証明にはなってないんではないの?


545:デフォルトの名無しさん
09/03/14 15:57:22
○通りしかないから手でやればとか力業でってのはなんか違うと思う。
証明ってのはその理論を拡張しても同じように証明できるのが証明だろうに。

546:デフォルトの名無しさん
09/03/14 16:02:14
ちがいます

547:デフォルトの名無しさん
09/03/14 16:05:54
>>544
与えられた公理(自然数の足し算とかけ算)のみをもとに、
有限回のステップで結論を導いてるから証明といえる。

この場合は命題が自明すぎるから、
騙されたような気になるのかもしれないな。

548:デフォルトの名無しさん
09/03/14 16:08:28
>545
URLリンク(ja.wikipedia.org)四色定理#.E8.A8.BC.E6.98.8E

549:デフォルトの名無しさん
09/03/14 16:17:56
普通は証明すべき命題のどこかに無限を含む集合が入るから、
この場合は力技で解くことはできないな。

550:デフォルトの名無しさん
09/03/14 16:31:31
証明というか、現象の検証だろこれ

551:デフォルトの名無しさん
09/03/14 16:41:49
それを証明と言うのですが

552:デフォルトの名無しさん
09/03/14 16:44:27
9*10=90 -> 9+0=9
9*11=99 -> 9+9=18 -> 1+8 = 9
9*12=108 -> 1+0+8=9
9*13=117 -> 1+1+7=9
9*14=126 -> 1+2+6=9
11のときはうまくないとも言えるけど
全桁足し続けて9になるのは
TCP/IPのchecksumなんかと似てる
10の補数かなんかで説明出来そうだな

553:デフォルトの名無しさん
09/03/14 16:54:37
無限を含むね

554:デフォルトの名無しさん
09/03/14 16:59:27
9*12345679=111111111も全桁足すと9
9*123456789=1111111101も全桁足すと9
9*987654321=8888888889->全桁足すと81->全桁足すと9

555:デフォルトの名無しさん
09/03/14 17:00:33
>>554
拡張しすぎだろ

556:デフォルトの名無しさん
09/03/14 17:02:00
確か
9 の倍数は全桁足すと 9 の倍数になる
って小学校のときに習った

557:デフォルトの名無しさん
09/03/14 17:02:12
自然数nに対して、(9n div 10) + (9n mod 10) が9の倍数になることは簡単に示せる。
そして、m >= (m div 10) + (m mod 10) > 0 だから、この操作を何回か繰り返せば、9になる。

558:デフォルトの名無しさん
09/03/14 17:41:41
>>537
それだと2桁しか正しくないね

>>556
9 の倍数は全桁足すと 9 の倍数になる訳だから
一桁になるまで足し続けると絶対 9 に収束する罠

559:デフォルトの名無しさん
09/03/14 23:04:47
なんでこうすれ違いのネタry

560:デフォルトの名無しさん
09/03/15 00:37:55
90年代からのrubyユーザーだが、世の趨勢としてrubyはpythonに敗北が決定的なので、メインのLLはpythonに移行することにする。

サヨナラruby。いままでありがとう。

561:デフォルトの名無しさん
09/03/15 02:07:46
うん、いらないでしょ。複数あること自体ライトウェイトじゃないし。

562:デフォルトの名無しさん
09/03/15 07:19:18
PHP使ってろ

563:デフォルトの名無しさん
09/03/15 11:05:03
>>560 は日本Pythonユーザ会の会長

564:デフォルトの名無しさん
09/03/15 12:45:50
結局Perl,PHPの2つあれば困らないからね

565:デフォルトの名無しさん
09/03/15 12:51:32
困らないけど、面白くもない

566:デフォルトの名無しさん
09/03/15 17:10:32
Perlだけでいいよ。
書いて楽しい、速さも十分。いうことないね。

rubyは楽しいけど遅い。
phpは早いけど楽しくない。
pythonは楽しくないし遅い。

567:デフォルトの名無しさん
09/03/15 17:48:55
Perlは読んで楽しくないからな

568:258=260
09/03/15 18:27:00
>>566
C/C++で書くよりPHPの方が楽しいよ。Perlの特殊変数は文字化けとしか思えない

569:デフォルトの名無しさん
09/03/15 19:08:57
C/C++ 慣れしてると PHP は入りやすい。
Perlだけは昔からどうも受けつけん…
LispもHaskellも使うけど、
正直Perlが何指向言語なのか今だによくわかってない俺がいる。
もっと立ち位置をはっきりさせてくれないと使ってあげられないね。

570:デフォルトの名無しさん
09/03/15 19:42:50
ゴルファーまで行かないけどなるべく短く入力って思想だからな

571:デフォルトの名無しさん
09/03/15 20:50:35
perlはperl以外のLLのプロトタイプ
致命的な失敗も盛りだくさんだがそれらは全て他の言語にフィードバックされている
ありがとう、perl。使うのはお断りだ。

572:デフォルトの名無しさん
09/03/15 21:28:43
>>571
ワロタw

573:デフォルトの名無しさん
09/03/15 21:57:15
LL(w

574:デフォルトの名無しさん
09/03/15 22:11:02
致命的な失敗
それは普及してしまったこと

575:デフォルトの名無しさん
09/03/15 22:12:35
awkが普及するよりはマシだったと考えるんだ

576:デフォルトの名無しさん
09/03/15 22:44:57
awkの方が良かったな

577:デフォルトの名無しさん
09/03/15 22:48:05
awkがPerlの代わりに普及していたら
Matsumotoは自分の言語にRubyではなくMawkと名付けていただろう
               ── Timothy John Berners-Lee

578:デフォルトの名無しさん
09/03/15 23:39:09
awkはawkで解りやすくて好きなんだが。

579:デフォルトの名無しさん
09/03/16 07:07:54
つかmawkってawkの一環境として既に存在しそうなんだが

580:デフォルトの名無しさん
09/03/16 07:25:52
言語好きって総じてカスなんだよな。なんつーか興味の方向性がさ、仕事向きじゃないんだよな。

581:デフォルトの名無しさん
09/03/16 07:38:12
ハッカーとリーマンの差www

582:デフォルトの名無しさん
09/03/16 07:54:44
好きな言語を隠すためにカス言語を語り合ってるからな
カスに見えるのは仕方ない

583:デフォルトの名無しさん
09/03/16 11:16:01
まぁ言語嫌いは一生Excelでちまちまやってなさいってこった。

584:デフォルトの名無しさん
09/03/16 11:51:31
なんでExcelかは知らないが、あれはあれで便利なんだがな
ドキュメントからコードっぽいものに出力するプラットフォームとして物凄く可能性を持ってるのに、
バンドルがVBAのみってのが(´・ω・`)
Rubyでもなんでもいいから、ループや文字列処理をしやすい言語をつけられんもんか。

585:デフォルトの名無しさん
09/03/16 11:58:50
VBA触ったことないんだけど
VBAで言語処理系作れないの?

586:デフォルトの名無しさん
09/03/16 12:51:15
COM経由でやれば?

587:デフォルトの名無しさん
09/03/16 12:52:40
たくさん言語覚えるの好きなのは、資格好きなのに似てるよな。
意味がある場合もあるし、たいていはくだらないとか。

588:デフォルトの名無しさん
09/03/16 13:48:35
>>584
OOo

589:デフォルトの名無しさん
09/03/16 15:07:07
そういう面ではMS OfficeよりGo-OOとかのほうが期待もてるな。
既に基本的な部分では相当完成度高いし。

590:デフォルトの名無しさん
09/03/16 19:11:21
Officeのアドオンって.NETで書けなかったっけか
だとしたらRubyだろうがPythonだろうが自由自在

591:デフォルトの名無しさん
09/03/16 21:10:14
アドオンを書きたいんじゃなくてスクリプトを書きたいんだろうと。

592:デフォルトの名無しさん
09/03/16 21:13:36
COM使っていいんなら今でも出来ると言えよう

593:デフォルトの名無しさん
09/03/16 21:21:41
COMは使いたくない。

594:デフォルトの名無しさん
09/03/16 23:42:07
埋め込みVBAでもCOMとやってることほとんど変わらんだろ


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

5330日前に更新/221 KB
担当:undef