■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50



レス数が1000を超えています。残念ながら全部は表示しません。

rubyを語るスレッド

1 :名無しさん@お腹いっぱい :02/04/16 23:24
語ってみましょう

399 :名無しさん@お腹いっぱい。 :02/09/22 01:31
RubyユーザのふりをしてPerlをののしり、Rubyユーザの評判を落とそうと仕向けている
粘着基地外がいます。放置をお願いします。騙されたり煽られたりした人がいたら
フォローしてあげてください。


400 :名無しさん@お腹いっぱい。 :02/09/22 01:31
>>397 まったくだ。
Rubyを一度でも触ったことがあれば、perlがいかに愚劣で汚物まみれな
言語であるかぐらいは分かっていると思うが。
誰しもperlは糞と思うに違いない。
perlなんて遅いし、汚いし、コミュニティの雰囲気が悪いし、ユーザは厨房ばっかりだし。
ホント、早く消えてくれねえかな。

401 :名無しさん@お腹いっぱい。 :02/09/22 01:32
>>399 コピペ厨房よ。そろそろアクセス規制されたいか?
大爆笑


402 :名無しさん@お腹いっぱい。 :02/09/22 01:33
>>393
その事実を広めてperlコミュニティを潰そう!

403 :名無しさん@お腹いっぱい。 :02/09/22 01:34
353必死だなw

404 :名無しさん@お腹いっぱい。 :02/09/22 01:35
>>401
大爆笑だって(w

405 :名無しさん@お腹いっぱい。 :02/09/22 01:48
396,397が平均的な反応なの?

406 :名無しさん@お腹いっぱい。 :02/09/22 01:57
>>405(糞パーラー)
そうだけどなにか?悔しいか?ぷ

407 :名無しさん@お腹いっぱい。 :02/09/22 02:08
>>405
荒れるのがわかってて聞いている気がするのだが。>>399 や、スレの流れを読め。

408 :名無しさん@お腹いっぱい。 :02/09/22 03:28
407=下司の勘ぐり

409 :名無しさん@お腹いっぱい。 :02/09/22 11:34
dsge

410 :名無しさん@お腹いっぱい。 :02/09/22 12:02
るび房に発見されたらもう終わりです

411 :名無しさん@お腹いっぱい。 :02/09/22 13:28
RubyユーザのふりをしてPerlをののしり、Rubyユーザの評判を落とそうと仕向けている
粘着基地外がいます。放置をお願いします。騙されたり煽られたりした人がいたら
フォローしてあげてください。

412 :名無しさん@お腹いっぱい。 :02/09/22 22:28
http://pc3.2ch.net/test/read.cgi/tech/1017736187/l50
皆さんのおかげでperl叩きが盛り上がって参りました!

413 :名無しさん@お腹いっぱい。 :02/09/22 22:33
>>411
コピペ荒らしということでお前に規制をかけてもらうよう運営板に依頼してきた。

414 :名無しさん@お腹いっぱい。 :02/09/23 00:07
どうやら >> 411 の事実が広まると困るみたいだね。
なんか墓穴掘ってるよ。

415 :名無しさん@お腹いっぱい。 :02/09/23 09:16
ところで、>>353 のスクリプトがどう動くのかみんなわかるの?
わかるんだったら教えてくれ
amritaのサイトは英語ばっかりでよくわからん

line.split(':').indexes(0,2,3,5,6)

これが行を:で分割して0,2,3,5,6個目を取り出していることはわかる
その配列がどうして、テーブルの中にはまるのか
ていうか def f.eachって何よ?

416 :名無しさん@お腹いっぱい。 :02/09/23 12:36
>>415
amritaのrdocのクイックスタートを読んだか?
あれは英語と日本語の両方が用意されている。
353に良く似た例がクイックスタートに載っていたと思う。

# つーか、英語くらい読めよ。

def f.each ではfというオブジェクトに
対する特異メソッドを定義している。
クラスメソッドはClassクラスのオブジェクトに
対して定義された特異メソッドのこと(だと思っているんだが)。

417 :名無しさん@お腹いっぱい。 :02/09/23 13:58
>>415
amritaに配列を食わせると繰り返しになるのはわかるだろ?
>>353では { :list=>f }としてファイルを与えているが、
ファイルもEnumarableだから配列と同じ動作になる
つまり、行ごとの展開(繰り返し)になる

そして、def f.each で行ごとの動作を変更している
superはもともとのメソッド(File#each)のこと
これを呼び出して1行分のデータをもらい、
それを分割してから必要な情報を取り出して
それをamritaに渡している(yield)わけ

>>391にはおおむね賛成だが、
Rubyの面白さはよく出ていると思うよ
トリッキーなんだけど明解なコードだな
UNIX的でないのは確か >>415は真似しない方がいいと思う

418 :regexp@Ruby :02/09/23 14:10
>>382
正規表現で一冊になるってことは結構つっこんだ話もしてるのかな?
こう書くよりこっちの方が速いとか、正規表現の等価変換の方法とか、
CFGな式を正規表現に変換する方法とか、有限オートマトンの限界とか、、、、
それともコードが長く多いだけとか!?


419 :415 :02/09/23 16:00
>>416-417
ありがとうございます。よくわかりました!
クイックスタートは読んでいたんですが、
ファイルをそのまま使えるとは夢にも思いませんでした

>>417
こんなスクリプト真似しようたってできるもんじゃないので、
真似するつもりはありませんが、
UNIX的なRubyってどんなものなんですか?

420 :名無しさん@お腹いっぱい。 :02/09/23 22:56
>>419
元々RubyはPython、Perlに比べてUNIX的言語っていう売り文句だが、
具体的に思いつく特徴は、、、むづかしいよね、、、。
Algol系の臭いがかすかに残ってるところとか?
でもそれもunix的とも言えぬ、か。

421 :名無しさん@お腹いっぱい。 :02/09/23 23:00
たんに作者がunix好きなだけだろ。

422 :名無しさん@お腹いっぱい。 :02/09/23 23:03
まぁ、Perlはunix的じゃないのは定説なわけだが。

423 :名無しさん@お腹いっぱい。 :02/09/23 23:13
なんで?
機能をいっぱいつめこみすぎてるから?
しかしその意味では ruby のほうが…

424 :名無しさん@お腹いっぱい。 :02/09/23 23:20
>>420
> 元々RubyはPython、Perlに比べてUNIX的言語っていう売り文句だが、

そうだっけ?

ruby はとりあえず置いておいて、unix的とは何かと考えると、完璧を追求するのではなく
10%の労力で90%の目的を達成するとか、シンプルさを基調としつつも、統一感よりは
便利さをとるとか、と自分では思ってるけど。

425 :名無しさん@お腹いっぱい。 :02/09/23 23:32
まつもと氏の考え
http://www.ruby-lang.org/ja/seminar/page03.html
>AWK フィルタに特化,拡張性に限界
>Perl データ構造が定義できない(当時),暗号的プログラム
>Tcl データ構造が文字列だけ,言語としては貧弱
>Python オブジェクト指向機能に不満,UNIX的でない(ABC,Modula-3)

rubyは、、、
>インタプリタ
>型宣言が不要
>書きやすく読みやすい文法
>システムプログラミング
>ネットワークプログラミング
>ポータブル
以下に色々ありますが本文を見れ。
http://www.ruby-lang.org/ja/seminar/index.html

426 :名無しさん@お腹いっぱい。 :02/09/24 09:15
>>419
353をフィルタにして、抜き出すカラムをコマンドラインから指定できるようにしてみた。
----------------------------------------
require 'amrita/template'

t = Amrita::TemplateText.new <<END
<table border=1>
<tr><th id=header></tr>
<tr id=list><td id=cols></tr>
</table>
END

header = []
cols = []

ARGV.delete_if do |a|
next unless a =~ /(\d+):(.*)/
header << $2
cols << $1.to_i
true
end

list = ARGF.readlines.collect do |l|
{ :cols=>l.split.indexes(*cols) }
end

t.expand(STDOUT, { :header=>header, :list=>list })


427 :426 :02/09/24 09:19
426を例えばtableview.rbという名前で保存して

$ cat /etc/passwd |ruby -F: tableview.rb 0:name 2:uid 3:gid 6:shell 5:home |w3m -T text/html

で353と同じ結果になる。こいつは/etc/passwd専用でなく
以下のように他のツールとも組みあわせて使える

$ ls -l|tail +2|ruby tableview.rb 8:name 0:mode 2:uid 3:gid 4:size |w3m -T text/html
$ df |tail +2|ruby tableview.rb 5:name 0:filesystem 1:size 2:used 3:available 4:percent |w3m -T text/html

tail +2 は先頭の1行をスキップする処理なんだけど、
こういう機能をtableview.rbに含めることは簡単だが、
そういうことをするとスクリプトが複雑になって汎用的でなくなる
そうしないで、ツールは単機能にしてパイプで組合せるというのが、
ここで言う「UNIX的」という奴かな


428 :名無しさん@お腹いっぱい。 :02/09/24 12:35
どうも、引用元不明の「UNIX的」という言葉が一人歩きしているように
見えなくもない。RubyはUNIXやPerlを継承しつつ、それをオブジェクト
指向によって一歩進めたものだよ、というのが主張じゃなかった?

cutやsedやtrやsortやgrepやawkがごちゃごちゃとあって、それらを必要に
応じて取り出し、組み合わせて処理を行うUNIXのツールボックスアプローチ

EmacsやPerlのようにそれらを統合し、雑然としながらも手元にすべての
道具を提供するキッチンシンクアプローチ

同様に多くの機能を持ちながらも、オブジェクト指向によって再整理して
使いやすい配置で提供するオブジェクト指向アプローチ

(゚д゚)ウマー

429 :名無しさん@お腹いっぱい。 :02/09/24 12:38
まあ、Rubyの実装やライブラリ構成のUNIX指向や、Perlを踏襲した
コマンドラインインターフェース、パイプのようにメソッドチェーンが
できるところを称してUNIX的というのは分かるよ。

430 :名無しさん@お腹いっぱい。 :02/09/24 12:53
>>381
それはその通りで、 flex_rb という構文解析向きの高速な
正規表現エンジンがあるよ。 http://www.inf.bme.hu/~pts/
(FreeBSD portsにもなってる)

>>384
PHPのmbregexもrubyの正規表現エンジンの転用。ただしGNU regex由来だから
LGPLなのでライセンスに注意。

rubyライセンスな次期エンジンとして、鬼車というのがすでにできてる。
マルチバイト対応、Perl5の拡張をすべて実装、GNU regex互換インターフェース、
等々。将来にも期待。


431 :名無しさん@お腹いっぱい。 :02/09/24 13:19
(;゜Д゜)ガクガクプルプル
鬼車 コワイヨ-


432 :名無しさん@お腹いっぱい。 :02/09/24 15:33
で、結局日本語の扱いがお上手だという以外に何があるの。

433 :名無しさん@お腹いっぱい。 :02/09/24 15:57
Rubyはほしくないが正規表現ライブラリはほしいぞ。
まあそれでいいや。

434 :名無しさん@xyzzy :02/09/24 21:37
>>431
アゲハチョウのことだぞ。
メリットは ruby license になることなんじゃない?



435 :名無しさん@お腹いっぱい。 :02/09/24 21:46
>>430
そんなのがあったとは。見てみますね。
でも、構文解析したいんじゃなくて、
light weight で高速な正規表現が使いたいだけだったりするんですが・・・

鬼車ってパフォーマンス的にはどうなんでしょう?
ていうか、RAA でも見つからないんですが、どこかで配布されていますか?

436 :名無しさん@お腹いっぱい。 :02/09/24 22:37
>>381
StringScanner に {skip,scan,check}_until() てのがあるじゃん。

437 :名無しさん@お腹いっぱい。 :02/09/24 22:42
>>435
ftp://ftp.ruby-lang.org/pub/ruby/contrib/ に onigd*.tar.gz という名前で置いてある。
ruby-dev MLを検索すれば関連する議論が読めるはず。

パフォーマンスチューニング的にはこれからだけど、すでに Ruby 標準のより少し速いらしい。
何にしても、 m17n を含めて本格的に開発が活発になるのは 1.8 を出してからになると思われる。

438 :名無しさん@お腹いっぱい。 :02/09/25 06:35
Perlをののしり、Perlスレの進行を妨害している粘着基地外のRubyユーザがいます。騙されたり煽られたりした人がたくさん出ています。同調しないようお願いします。



439 :荒れる一言 :02/09/25 11:18
るびきち

440 :名無しさん@お腹いっぱい。 :02/09/25 14:04
>>436
ガーソ!私の目は節穴だったようです。すみません。
言い訳ですが、Ruby リファレンスマニュアルには載ってないようです。

>>437
ありがとうございます。早速見てみます。

そういえば、オライリーの正規表現本第二版は Ruby にも言及してるそうですが、
どんな感じなんでしょう?

441 :名無しさん@お腹いっぱい。 :02/09/25 22:06
>>438
コピペかと思ったらなんか改ざんされているな。粘着基地外はRubyユーザじゃないだろ。
ふりをしているだけで。どちらかというと、Perlを馬鹿にするよりもRubyをおとしいれる方が
やつの目的だろうから注意。

442 :名無しさん@お腹いっぱい。 :02/09/25 22:16
>>431
次は地獄車?

443 :名無しさん@お腹いっぱい。 :02/09/25 23:29
(;゜Д゜)ガクガクプルプルオロオロ
地獄車 コワイヨ-


444 :名無しさん@お腹いっぱい。 :02/09/26 14:19
>>441
じゃあ、なぜPerlスレだけに書き込むんだ?


445 :名無しさん@お腹いっぱい。 :02/09/26 15:22
>>444
基地外だから。
というか、ここは気違いを語るスレッドじゃないぽ(´・ω・`)


446 :Seisei_Yamaguchi :02/09/26 16:58
Unix的と言うと
String等のクラスに勝手にメソッドを追加してシステム深部にお気軽に肉薄できる点 が
/usr/bin /usr/local/bin 等に自作コマンドを置いたりカーネル再構築したりが可能 な点と共通する気がするが
Ruby特有でもなければ Unix特有でもないですか ? そうですか


447 :名無しさん@お腹いっぱい。 :02/09/26 20:18
独り言はヨソでおながいします

448 :名無しさん@お腹いっぱい。 :02/09/27 15:34
fork()が組み込まれてるのがUNIX的。



449 :名無しさん@お腹いっぱい。 :02/09/27 16:36
何が「UNIX *的*」なんて相対的なもんなんだから、
何と比べて UNIX 的なのかを明確にしないと議論にならないのではないかな、
とマジレスして釣られてみる。

それはそうと、一連の CGI の質問してる金光さんって、
「Ruby ライブラリ編」の編者なのね。
もっとしっかりしてくれよ〜。

450 :名無しさん@お腹いっぱい。 :02/09/27 17:39
>>449
金光さんてなんか、よくわからないパワーを感じるよね。


451 :名無しさん@お腹いっぱい。 :02/09/27 22:26
>>449
256本の企画もあの人だよ。
ただ、編者であって決してプログラマではないからね。


452 :名無しさん@お腹いっぱい。 :02/09/28 00:22
>>451
編集者って内容チェックとかはしないの?

453 :名無しさん@お腹いっぱい。 :02/09/28 01:08
>>452
誤字脱字などのチェックだけで内容は理解していない(必要ない)
ということにしておいてあげたい。

454 :名無しさん@お腹いっぱい。 :02/09/28 21:48
Perlユーザを殺せ!

455 :名無しさん@お腹いっぱい。 :02/09/28 23:01
>>454=VB厨

456 :名無しさん@お腹いっぱい。 :02/09/29 02:13
454は尊師のお言葉です。有り難く押し頂いて実行に移すべし

457 :名無しさん@お腹いっぱい。 :02/09/29 12:07
>>450
Rubyの256本をいっぱい出した。ありとあらゆるひとに「本書きませんか」を送った。
Ruby VMにグラフィック関係をいれようとか言い出して大議論になった。
Ruby Gem Boxをログで埋めた。
SmalltalkのMLにスクリーンショット付きのメールを出した。
viの本を書いた。


458 :名無しさん@お腹いっぱい。 :02/09/29 12:34
Pythonユーザもうざくなってきた。
たたきつぶそう!

459 :名無しさん@お腹いっぱい。 :02/09/29 12:38
コイツ叩き潰せばRuby界も正常化する
http://enya-mp3.tripod.com

460 :オカマ氏ね :02/09/29 12:42
25歳無職童貞 
http://www.geocities.co.jp/MusicStar-Keyboard/4089/test/ruby3.jpg

461 :名無しさん@お腹いっぱい。 :02/09/29 18:06
UNIX板の住人のツボをまるで心得てないね。

このスレを読み返してろくに誰も食いついてないのを確かめたら元の板に(・∀・)カエレ!

462 :名無しさん@お腹いっぱい。 :02/09/30 01:26
>>461
そうなのよね。ま、ディベートとして楽しむなら収穫もあろうもんだけどね。
それにしても昔っから似たようなことやってるから食傷気味なんだよね。

ITS vs UNIX
68系 vs 80系 (vs SC/MP (w)
Emacs vs vi
bash vs tch
Mac vs その他
mallocする vs しない

などなどなど。技術的な議論であれば応じようかとも思ったりもするんだけど、
これじゃあねえ。鼻で笑うだけ。あとは少々うざいと思うだけかな。

Rubyだって数多あるプログラミング言語のひとつでしかないし、
応用の分野によってはPythonだろうがPerlだろうがCだろうがLispだろうが
その他もろもろ、分野に合わせて使い分けるだけのことだしね。
ま、おれにとってはRubyが他の言語よりは性に合ってるようだ、程度のもんだし。

463 :名無しさん@お腹いっぱい。 :02/09/30 01:51
> mallocする vs しない
ん? 敢えてmallocしないという派があるの?
最初にドカンと確保して自分で管理ってこと?


464 :名無しさん@お腹いっぱい。 :02/09/30 02:07
>>463
あ、ごめんごめん、

 mallocしたあと 必ずfreeする vs 必要なければ別にfreeしなくてもいいじゃん

の間違い。ついでに、s/tch/tcsh/でした。
お詫びして訂正します。

465 :名無しさん@お腹いっぱい。 :02/09/30 02:09
>>457
> SmalltalkのMLにスクリーンショット付きのメールを出した。

http://www.sra.co.jp/smalltalk/SML/archives/2001-June/005203.html
これか。デコードしたら 126 kBのただのキャプチャ。すげえな。

466 :名無しさん@お腹いっぱい。 :02/09/30 04:22
↓そういうネタはこっちに供給しる!

ニュース、ML キチガイリスト 9 人目
http://pc.2ch.net/test/read.cgi/unix/1032762432/l50

467 :名無しさん@お腹いっぱい。 :02/09/30 11:31
>>466
そこまで逝っちゃってはないっしょ

468 :名無しさん@お腹いっぱい。 :02/10/01 00:55
| どもっ。
これを見るとすごく不愉快になるな。

469 :名無しさん@お腹いっぱい。 :02/10/01 16:31
あのー。厨な質問なんですが、
ruby -ne '式' 入力ファイル
のワンライナーにBEGIN、ENDを加えるのって、
ruby -e 'BEGIN{}' -ne '式' -e 'END{}' 入力ファイル
という書き方であっているでしょうか?

エラーの意味がわからなくて……。
質問シマスタ。


470 :名無しさん@お腹いっぱい。 :02/10/01 17:22
>>469
ruby -ne 'BEGIN{}; 式; END{}' 入力ファイル

471 :名無しさん@お腹いっぱい。 :02/10/01 19:03
>>470
できました。

472 :名無しさん@お腹いっぱい。 :02/10/01 23:11
Rubyのため西根

473 :名無しさん@お腹いっぱい。 :02/10/02 04:15
Perlの30倍遅いRubyユーザのいるスレはここですか?

474 :名無しさん@お腹いっぱい。 :02/10/02 13:31
>>473
オマエはソーローかよ

475 :名無しさん@お腹いっぱい。 :02/10/02 21:28
rubyの厨な疑問を聞けるMLか、掲示板ってありませんか。
ruby-listは敷居が高いかも

476 :名無しさん@お腹いっぱい。 :02/10/02 21:41
ここでいいじゃん

477 :名無しさん@お腹いっぱい。 :02/10/02 21:49
シェルのプロセス置換を使って、
cmp <(prog1) <(prog2)
のようにできる機能をrubyにないかな。
xxx.rb prog1 prog2
と実行したら、prog1 prog2の出力を読み込む、というやつ。
ないかなー。。

478 :名無しさん@お腹いっぱい。 :02/10/02 22:31
>>477
% ruby -e 'p `#{ARGV.shift}` == `#{ARGV.shift}`' prog1 prog2

479 :名無しさん@お腹いっぱい。 :02/10/02 23:08
>>478
>% ruby -e 'p `#{ARGV.shift}` == `#{ARGV.shift}`' prog1 prog2
prog1 prog2というのは
カレントディレクトリにある使い捨てスクリプトなんですが……


480 :名無しさん@お腹いっぱい。 :02/10/02 23:09
揚げてしまった……

481 :478 :02/10/02 23:27
>>479
ハァ?
じゃあ、もっと具体的にやりたいことを言え

482 :478 :02/10/02 23:33
>>479
#!/usr/local/bin/ruby
def prog_cmp(prog1, prog2)
`#{prog1}` == `#{prog2}`
end
p prog_cmp(ARGV.shift, ARGV.shift)


483 :479 :02/10/03 02:15
>>479
すみません。いいかげんな聞き方でした。
http://pc.2ch.net/test/read.cgi/php/1032070299/597-602
に書いた者ですが、excelでは簡単にできる処理なのですが、数行数列のデーターを個々の行列ごとに串刺しで和をとるような
計算がしたいのです。(本当はもう少し複雑な計算ですが)
それで、計算はbcに任せるために
3+8+84
2+4+32


のようなファイルを作ろうと思って、例えば、
3→2→……と8→4→……と84→32→……のような出力をするスクリプトの結果を
rubyに食わせて、rubyがそれぞれの入力を演算子で結合する、ということがしたいのです。
ruby一人で全てできることなのでしょうが……。



484 :478 :02/10/03 02:38
>>483
ふむ。 >>477 でそこまで読み取れた香具師がいたらそいつは神だな。

あとは行列計算の得意な香具師にまかせた。
ほれ、るびきち、出番だぞ(w

485 :名無しさん@お腹いっぱい。 :02/10/03 03:00
るびきちタン……


486 :名無しさん@お腹いっぱい。 :02/10/03 03:18
るびきちじゃあないが。
和を出すだけのスクリプト。

result = []
ARGF.each do |line|
  lineno = ARGF.file.lineno - 1
  result[lineno] ||= []
  line.chomp.split(',').collect{|i|i.to_i}.each_with_index do |val, i|
    begin
      result[lineno][i] += val
    rescue NoMethodError
      result[lineno] << 0
      retry
    end
  end
end


487 :486 :02/10/03 03:59
csv ファイルを 10 個作ってベンチ取ってみた。
メモリ消費は8MBくらいかな。AthlonXP1700+ Win2KSP3
$ruby -v
ruby 1.7.3 (2002-09-05) [i386-cygwin]
$time test.sh
real 1m42.939s
user 1m41.591s
sys 0m0.296s

----- gen.c
#define M 2000
#define N 400
int main(void){
    int i, j;
    srand(time());
    for (i=0; i<M; i++){
        for (j=0; j<N; j++){
            printf("%d", rand() % 100 );
            if (j < N - 1)
                printf(",");
            else
                printf("\n");
        }
    }
  return 0;
}


488 :486 :02/10/03 04:00
----- hoge.rb
result = []
ARGF.each do |line|
  lineno = ARGF.file.lineno - 1
  result[lineno] ||= []
  line.chomp.split(',').collect{|i|i.to_i}.each_with_index do |val, i|
    begin
      result[lineno][i] += val
    rescue NoMethodError
      result[lineno][i] = val
    end
  end
end
result.each{|i|puts i.join(',')}

----- test.sh
#!/bin/sh
/usr/bin/env ruby hoge.rb 01.csv 02.csv 03.csv 04.csv 05.csv 06.csv 07.csv 08.csv 09.csv 10.csv > result.csv


489 :479 :02/10/03 08:18
>>486   お目覚めに、早速試してみました。
% cat ./test.sh
#!/bin/sh
/usr/bin/env ruby hoge.rb 01.csv 02.csv > result.csv
% time ./test.sh
./test.sh 233.66s user 15.85s system 99% cpu 4:09.69 total
%ruby -v
ruby 1.6.4 (2001-06-04) [i386-linux-gnu]
のため、NoMethodErrorでは捕獲できずNameErrorで
捕獲しました。これが原因でしょうか。
だれかぁ、高速版キボンヌ (´。`)はぁ・・・。

それから、
hoge.rb:7: `undefined method `+' for nil' (NameError)
でどれくらい時間がもってかれたかって、調べ方ありますか?


490 :478 :02/10/03 11:47
>>489
> だれかぁ、高速版キボンヌ (´。`)はぁ・・・。

こりゃ大した太公望だな。
またいっぱい釣れるといいね(w

491 :486 :02/10/03 12:06
NArray 使えば速くなるだろうね。
http://www.ir.isas.ac.jp/~masa/ruby/

例外使うのは漏れの趣味なので if-else で置き換えてくれ。
if result[lineno][i]
result[lineno][i] += val
else
result[lineno][i] = val
end

>でどれくらい時間がもってかれたかって、調べ方ありますか?
-r profile
恐ろしく遅くなるのでデータ数を減らして検証。

492 :486 :02/10/03 12:42
確かに遅いねえ。intel-solaris Pen!!!800MHz
% ruby -v
ruby 1.6.7 (2002-03-01) [i386-solaris2.8]
% cat hoge2.rb
result = []
ARGF.each do |line|
  lineno = ARGF.file.lineno - 1
  result[lineno] ||= []
  line.chomp.split(',').collect{|i|i.to_i}.each_with_index do |val, i|
     if result[lineno][i]
      result[lineno][i] += val
     else
      result[lineno][i] = val
    end
  end
end
result.each{|i|puts i.join(',')}
%cat test2.sh
#!/bin/sh
/usr/bin/env ruby hoge2.rb 01.csv 02.csv > result2.csv
%time test2.sh
68.39u 0.38s 1:09.78 98.5%

493 :486 :02/10/03 12:46
NArray 使うとこんなもん。書き方でもっと速くなると思う。
% ruby -v
ruby 1.6.7 (2002-03-01) [i386-solaris2.8]
%cat hoge3.rb
require 'narray'
M = 2000; N = 400
result = NArray.int(M, N)
ARGF.each do |line|
  lineno = ARGF.file.lineno - 1
  data = line.chomp.split(',').collect{|i|i.to_i}
  range = (lineno*N)...((lineno+1)*N)
  result[range] += NArray.to_na(data)
end
for i in 1..(M * N)
  print result[i-1]
  print i % 400 == 0 ? "\n" : ","
end
%cat test3.sh
#!/bin/sh
/usr/bin/env ruby hoge3.rb 01.csv 02.csv > result.csv
%time ./test3.sh
19.19u 0.24s 0:19.92 97.5%

494 :名無しさん@お腹いっぱい。 :02/10/03 18:21
>>486
お手数懸けました。今、少しみましたが、これくらいなら、十分実用になる処理ができそうです。
どうも有り難うございました。もう少し勉強してみます。

495 :名無しさん@お腹いっぱい。 :02/10/03 19:10
http://pc3.2ch.net/test/read.cgi/tech/1017736187/l50
加勢頼む。Perlスレ撲滅のため協力してくれ。

496 :名無しさん@お腹いっぱい。 :02/10/03 20:18
●●●●●●●●「オセロさえ納期内に作れない=OO役立たず 」祭り●●●●●●●
/|         |  |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ
  |         |  | ̄ ̄ ̄ /|                    ||
  |         |  |   / /|TTTTTT   TTTTTTTTTT||TTTTT
  |        /\ |  /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|
  |  /  /  |文|/ // /
  |/  /.  _.| ̄|/|/|/         Λ_Λ
/|\/  / /  |/ /           (___)
/|    / /  /ヽ            /〔 非OO 〕〕つ
  |   | ̄|  | |ヽ/l            `/二二ヽ
  |   |  |/| |__|/   Λ_Λ     / /(_)
  |   |/|  |/      ( ´∀`)   (_)    Λ_Λ
  |   |  |/      // /  ^ ̄]゚        (`   )
  |   |/        ゚/ ̄ ̄_ヽ         ⊂〔〔 非OO 〕


497 :名無しさん@お腹いっぱい。 :02/10/03 21:38
ruby基地外の荒らしに遭ってム板の「Perlについての質問箱」
が潰された。rubyユーザって最低だな。


498 :名無しさん@お腹いっぱい。 :02/10/03 21:52
>>497
おおかた、お前が犯人だろうな。死ねよヴォケ


掲示板に戻る 全部 前100 次100 最新50

read.cgi ver5.26+ (01/10/21-)