Rubyについて

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
教えてくれませんか? なんか、どのすれ見ても結構Rubyがいいみたいな事かいてるし
ちょっと前のCマガにもRubyを薦めてるような記事が載ってたんで
興味ありです Rubyの魅力を教えてください
ならRubyのスレに書け
荒しとしかおもえんわ
Cマガ野記事読めばいいじゃん。それか今月のUNIX USER。後検索もしろよ。
4デフォルトの名無しさん:02/01/27 10:57
Ruby以外の言語は糞。何度言ったら分かる?
どこがどのように糞で
Rubyのどこがいいのか
具体的におしえていただきたい。
61:02/01/27 10:59
>>2さん>>3さんごめんなさい 初心者な者で…
俺が2ch初心者の頃は
恐れ多くてスレなんてたてられなかったけどな。
8デフォルトの名無しさん:02/01/27 11:18
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2ch
Ruby>>>>>>鈴木ムネオ
10デフォルトの名無しさん:02/01/27 12:16
Rubyこそ最高の言語!
わかってると思うけどRubyがいいって言っているのはみんなネタなんだよ。
マジレススマソ
>1
>なんか、どのすれ見ても結構Rubyがいいみたいな事かいてるし
簡単にだまされるなよ(w
13デフォルトの名無しさん:02/01/27 13:48
Rubyを批判する奴はサヨク
Rubyを批判する奴はサヨクという奴がサヨク

Ruby作者のまつもとはオウム真理教の教祖。
Ruby信者=オウム信者。
つまり社会のゴミ
Rubyはユーザが主に厨で構成されていることをのぞけばかなり魅力的だと思う。
PerlとRubyとPythonを比べると、
書籍の数 Perl > Ruby > Python
雑誌の記事の数 Ruby >= Perl > Python (最近Rubyの記事が多い)
出来ること Perl > Python >= Ruby
ってとこか(恣意的意見)。

スクリプト言語をやりたければ、全部かじってみて、好きなのを選ぶといいと思うよ。
>>17
出来ることはPerl = Python = Rubyだと思うんだけど、
Perlには出来るけど、Python、Rubyでは出来ない事ってあるの?
1917:02/01/27 15:01
>>18
ライブラリの数で見ると、です。
20デフォルトの名無しさん:02/01/27 15:13
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Rubyが電磁波を放射している様子ですか?
22JustStupidRubyist:02/01/27 18:15
>>1
スレ立てないで。いいかげんうんざりする。

Rubyを愛する奴は人生の敗北者 Part3
http://pc.2ch.net/test/read.cgi/tech/1001829961/
2318:02/01/27 18:36
>>19
なる、それなら納得。
ライブラリがなかったら自分で作ればいいと思うけど、
まあ、手間がかかるという意味では大変かな、、、
>>22 はぁ? あんたがうんざりする亊と何か関係でも?
>>24 sageで煽るお前がuzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
26デフォルトの名無しさん:02/01/28 05:47
Ruby!
俺もrubyの魅力が知りたい
Rubyを習得すれば、他の言語を見下せるようになる。以上。
答えになってないYO
もっと詳しく教えてYO
>>29
Ruby作者のまつもとはオウム真理教の教祖。
Ruby信者=オウム信者。
つまり社会のゴミ
31デフォルトの名無しさん:02/01/29 06:45
:-/
初心者のオレから超初心者のアナタにアドバイス

256本は最初に買うと死にます。とりあえず

プログラミングRuby (ピアソンエデュケーション) か

Rubyプログラミング入門 (オーム社) を買おう。
>>32に横やり補足。
オブジェクト指向スクリプト言語Ruby(アスキー)は
まつもとさんが書いてますが、一般へのRubyの紹介及び解説みたいな本です。
初心者にはお勧め出来ない。
256本は興味のある分野に書かれているものなら、読んでおくといい。
オレは極道と界道を買ったけど、とてもためになった。
>>33
> オブジェクト指向スクリプト言語Ruby(アスキー)は
> まつもとさんが書いてますが、一般へのRubyの紹介及び解説みたいな本です。
いや、むしろRubyの実装とかにも踏み込むマニアックな本だとおもう。
石塚さんのOO設計とかも入ってるし。

> 初心者にはお勧め出来ない。
それは同意。
(;´д`).。oO(むんむんむ〜れむ〜れ腋の下ぁ…)
Windows 98 SE にて、rubyw.exe 1,6,4,0 を使ってます。

最初に、スクリプトを書いた hoge.rb のショートカット(アイコン)を作って、
あとで、入力したいデータが入ったアイコンをショートカットの上に
ドラッグ&ドロップしてやる、なんてことができるでしょうか?
何をどうやって試してみてもうまくいかないので、極めて討つ討つ討つ…。

Windows のショートカットアイコンのプロパティに "%1" とか入れてみたり、
hoge.rb では $_ や $* から入力を拾ってみようとしてみたり、
ためしにテキストファイルに fp.print strHogeHoge してみたり。
たまに print できても「nil」なんて書かれたりしてガックリ。

(;´д`).。oO( どうしたら井〜の頭?)
>>35

rubyw.exe へのショートカットをつくって、
そのパラメータにスクリプト名を書けばよかったりしません?
パス名が \ 区切りになるので cygwin版じゃなくmingw版とかのほうが
よかったりはするかも(未確認)
>>36
(´−`).。oO( スクリプトと入力データ。2つのファイル名を与えたかった。)

しかし、なんとなくわかってきました ヽ(;´д`)ノ゙(((○ ソリャソリャ

問題点
1. Windows のアイコンの仕様:
  *.exe, *.bat,... = D&D のターゲットになれる
  上記以外(*.exe に関連付けしてあっても)= D&D のターゲットになれない2. Windows のパス名の区切り文字が逆スラッシュなのはイヤだ
3. Ruby インタプリタに複数のファイル名や文字列が与えられるだけでは
スクリプトと単なる文字の羅列との区別がつかない
(というより、Windows が *.rb とかのスクリプトのファイルを
実行権限つきで動かせない。しかも #!C:\Progra~1\ruby.exe などの
型式でインタプリタを指定できない)

↓ダサい方法ですが、なんとかいけます (´д`)ノ 

解決策
droptarget.bat の中身:
TYPE %1 | START "E:\Program Files\hogehoge.rb"

hogehoge.rb の中身:
strText = STDIN.read
(以下略)

そして、droptarget.bat の(ショートカット)アイコンに
なにか好きなものをドラッグ&ドロップする

…という感じでうまくいきました。
ありがとうございました〜♥>>36
38デフォルトの名無しさん:02/02/21 19:35
>>37

手元のWindows2000だと、リンク先を

c:\path\to\ruby.exe c:\path\to\script

にしておけば、ドロップしたファイル名が受け取れてます。
Windows98だとダメなのかもしれないですね。。。

ところで、droptarget.bat の %1 はスクリプト名、%2が
ファイル名のほうが便利じゃないです?ってこれも
うまくいかない?
最近Ruby厨がかわいくてしょうがない・・・
40デフォルトの名無しさん:02/02/21 21:57
ときどき、大声で「Ruby!」と突然叫んでみたくなりませんか?
41 ◆RubyOmS2 :02/02/22 06:02
>>37
ARGFを使った方がスクリプトが汎用的でいいと思うんだけど、、、
Rubyのスクリプトを実行形式(.exe)にかえるツールがいくつかあるらしいので、
それを使ってもできると思う。
詳しくはどれなのかオレも忘れちゃったので、MLなどで検索してみてください。(ごめんなさい)

>>40
一日一回は「Ruby!」と叫ばないと禁断症状が現れます。w
42デフォルトの名無しさん:02/02/24 09:23
Ruby!
病人が居るスレに認定
44デフォルトの名無しさん:02/02/27 17:55
Rubyでオブジェクトをシリアライズする方法を教えてください。オブジェクトをファイルに保存したいんです。Googleでさがしたけど、方法がわかんないんです。
>>44
Rubyはできません。
obj.dump
こっちを本スレにしよう。
>>44
ネタ?
組み込みモジュールの Marshal を使う。
>>44
Marshal.dump を使おう
http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Marshal

だたし、特定のオブジェクトの dump ができなかったり、
Marshal フォーマットがいつの間にか変わっていて
load できなかったりすることもある。
後者は Changelog や ruby-list で情報が得られると思う。
50デフォルトの名無しさん:02/02/27 22:38
Pstoreでも良いんじゃないかね。>>44
51デフォルトの名無しさん:02/02/27 23:34
>>49
Marshalのフォーマットは基本的には上位互換でしょう。
ただし、一時期バグのせい(?)で互換性がなくなってしまったことが
あったみたいです。
52デフォルトの名無しさん:02/02/28 09:52
>>49
ああ、そっか。Ruby界隈ではマーシャリングって言葉の方が多く使われてるんですね。ありがとうございました。
53デフォルトの名無しさん:02/02/28 12:01
>>51
>>49 のMarshalのドキュメント読んだ?

1.7以降はMarsharl::MAJOR_VERSIONが違うとエラーになるみたい。
54デフォルトの名無しさん:02/02/28 12:06
>>53
Marshalのつづりを間違えた。
すまん、逝ってくる。
55デフォルトの名無しさん:02/02/28 22:54
>>53
がーん
古いのは読めないの?
56デフォルトの名無しさん:02/03/01 00:53
>>55
データをファイルに書き出したいならテキスト形式にするのが
互換性問題もきにしなくていいし一番長持ち。
そりゃそうだけど大きさと速度考えたらどう考えてもテキスト不可でしょ。
58デフォルトの名無しさん:02/03/01 01:18
>>57
もちろんケースバイケースなんだけど、いまどき大きさや速度を
気にしなければいけないケースはあまりないのでは?
それよりもデータをテキストに変換、テキストをデータに変換、
という部分を作らなければいけないのが面倒かも。
でも Marshal されたものに比べテキストなら他言語でも読めるし
にんげんにも読めるしメリットも多い。

なんかあたりまえのこと書いてるなあ。おもしろくなくてスマソ。
59デフォルトの名無しさん:02/03/01 20:10
言語仕様的にどうよ?
悪くないんなら、ちょっとしたShellでも
作りたいんだが。
60デフォルトの名無しさん:02/03/01 21:47
>>58
ぜんぜんおもしろくない。オブジェクトで保存、オブジェクトで通信、なんでもオブジェクトしてこそのオブジェクト指向だろうが。一々テキストに書き出して正規表現で処理するならPerlと同じじゃん。
>>58
現実にはテキストクソ遅せーとのたまう信者が多数なので不可。
それよりもディスアセンブラみたいに、何が書かれているのか
入出力するフィルターがあれば十分。
Sather!
63デフォルトの名無しさん:02/03/01 22:30
Rubyってオブジェクトをテキスト形式で書き出せないの?XMLは?
クソムルで書くなんて、アホ。
65デフォルトの名無しさん:02/03/02 00:48
>>64
アホはおめーだよ。普通まともなオブジェクト指向言語なら、オブジェクトをXMLに吐き出せて当然。
できるのかできないのかはっきりしろ
65は「おまえだよ」使いに認定〜
Marshalのことを言っている人、このページを読んだ事はある?

http://www.jin.gr.jp/~nahi/RWiki/index.cgi?cmd=view;name=Marshal%A1%A3

XMLに吐き出すならXMarshalがある。(制限はあるけど)
試したわけじゃないけど、AMarshalが一番色々できそう。
69デフォルトの名無しさん:02/03/02 01:06
>>67
ありがとう。ところで、できんのか、できないのか、今作ってるとこなのか、どうなんだ?
70デフォルトの名無しさん:02/03/02 01:08
読むのめんどくせえからこんなとこできいてるんじゃねえか、ぼけ>>68
71デフォルトの名無しさん:02/03/02 01:10
あ、お礼言うの忘れてた。どうもありがとう。>>68
72デフォルトの名無しさん:02/03/02 01:10
satherか。
イテレータとかsatherから持ってきてるんだっけ。
>普通まともなオブジェクト指向言語なら、オブジェクトをXMLに吐き出せて当然。
クスッ。初学者さんですねえ。
74デフォルトの名無しさん:02/03/02 01:27
先月創刊のNEXT ENGINEERに未踏ソフトウェア事業の
天才プログラマネタが載ってるね
75デフォルトの名無しさん:02/03/02 01:28
>>73
だからこんなとこできいて、礼儀正しくお礼までのべてるんじゃねえか、ぼけ。
76デフォルトの名無しさん:02/03/02 02:29
>72
CLUじゃないの?
77デフォルトの名無しさん:02/03/02 03:27
>>59
個人的には書きやすくて好きだけど。
shell って何やりたいかよくわからないけど、標準で入っている shell.rb とか
おもしろい。
注: インタラクティブな Shell ではないよ。
78デフォルトの名無しさん:02/03/02 08:29
>>77
シェルじゃなくて、なんていうかemacsのスクラッチバッファみたいなの
作ってみたい。とりあえずそのshell.rbでも見てみるわ。サンクス。
79デフォルトの名無しさん:02/03/02 11:10
>>78
対話的に Ruby のコードを実行したいなら、
irb(Interactive Ruby)が標準で添付されているよ。

Emacsといっしょに使うなら RAA にあるirbshかな。
80デフォルトの名無しさん:02/03/02 12:44
>78
スクラッチバッファ相当を作りたいのなら shell.rb は全然関係ないね。
79が言うとおり irb がついてる。

irb って何であんなに複雑なんだろう。
81デフォルトの名無しさん:02/03/02 13:11
>>79-80
成るほど。そっちを見たほうがいいのか。
ていうか既にあるのか。
じゃあ視点変えて、例えばエディタ等の
マクロ言語として使用する場合の
メリット・デメリットを教えてくれない?
非常に興味あるんだけど。
>>81
はぁ?emacs使えば?
83デフォルトの名無しさん:02/03/02 14:02
>>80
Rubyがそのたぐいの処理に向いてないからです。しょせんPerl オブジェクト指向地方の方言じゃん。
84デフォルトの名無しさん:02/03/02 14:14
>>81
Lisp のかわりに Ruby を積んだ Emacs みたいなイメージですよね。
おもしろいんじゃないでしょうか。
Ruby はもともと文字列処理は得意だし、悪くないと思いますよ。

JED というエディタに Ruby を組み込んだものは既にある(あった?)みたい。
あたまわるいひとばっかりなのはなんでえ?
86デフォルトの名無しさん:02/03/02 15:06
>>80
irb は、Rubyの字句解析に相当する部分を全部自前でやっているから。
87デフォルトの名無しさん:02/03/02 16:14
ruby 1.6.7 がリリースされているようです。アナウンスは月曜?
88デフォルトの名無しさん:02/03/02 16:30
だって、くるなっていってんのに、きみみたいのばっか集まってくるんだもん。>>85
89デフォルトの名無しさん:02/03/02 18:19
>>84
エディタのマクロ言語としてRubyを使いたい場合、
エディタにRubyを組み込むという手と、
Rubyでエディタを書いてしまうという手が考えられるけど
どっちがいいだろう。
90デフォルトの名無しさん:02/03/02 20:01
>>89
Rubyで書いちゃう方が(使う方としては)面白いと思う。
その方が触ろうとする時サンプルソースも多いし、Squeak(Smalltalk)みたいに色々弄れるんじゃないかな、と思うけどEmacsはどんな感じ?
速度としては
http://www.bagley.org/~doug/shootout/craps.shtml から
http://www.bagley.org/~doug/shootout/lang/xemacs/ xemacs
http://www.bagley.org/~doug/shootout/lang/ruby/ ruby
うーん?
まぁ、2.0になれば速くなるだろうし、このままでもあまり問題では無いだろうけど。
91デフォルトの名無しさん:02/03/02 20:21
>>91
ねぇ、ねぇ。Rubyで書かれたエディタなんていくらでもあるよね。昨日、今日できたプログラム言語じゃないんだし、真のオブジェクト指向言語で、とっても素晴らしいんだから、エディタなんか、みんな自分で作っているよね。
>>91
ハァ?
Rubyで疑似OSもつくれるよ。
RUNIXを作ろう。
プロセッサはRubyのコードをそのまま実行できるCPUを採用。
94デフォルトの名無しさん:02/03/02 20:31
>>91
まあ tk や gtk でテキストウィジェッと出せばできたも同然だからな。
でも常用できるレベルにするのは大変でしょ。
95デフォルトの名無しさん:02/03/02 20:32
ごたく並べてねぇで、エディタ出せよ、エディタ、ぐぉらあ!>>92
9692@低能:02/03/02 20:34
>>95
Rubyでコーディングなんてできません<(`^´)>
97デフォルトの名無しさん:02/03/02 20:44
>>94
それは実用性のあるプログラムをRubyで書くのは無理だから止めた方が良いというアドバイスか?それとも実用レベルのプログラムを書けるやつがRuby界隈にはいないということか?
>90
その速度の比較だけど、比べにくくてよくわからんのだが Ruby って
Emacs Lisp より遅いの?
まあ lisp なんて処理系が単純だから高速であたりまえの気もするが。
>>97
単に「自分はコーディングできません」ってことじゃないですか?
実用レベルのエディタを作るのは言語に関係なく大変だろ。
既存のエディタが無数にあるのだから組み込めば良し。
101デフォルトの名無しさん:02/03/02 21:01
>>92
おまえの書き込み低脳過ぎてこっちが恥ずかしくなるから
もう少し勉強してしゃべってくれませんか?
>>98
数値計算が絡むのは遅いよ
103デフォルトの名無しさん:02/03/02 21:05
>>100
素直になれよ。ちゃんと認めたらどうだ。「Rubyじゃエディタはもちろんこれといったアプリケーションは何も作れません。現に何ひとつ目玉となるようなアプリケーションがありません。」って。
今の流れ、雰囲気でいくと
>>103の方が恥ずかしいね。
>>100
誰か Emacs に Ruby を組み込んでくれないかなあ。lispでなんか
書きたくないよ。lisp は残しとくのは構わないから。
RubyじゃなくてPerlでも良いけど。
>>101
ネタにマジレスしているんだか、ネタと分かって煽っているのかよく分からないな。
107106:02/03/02 21:12
ネタ禁止スレだったらごめん。
>>105
自分でやれ。俺はlispのほうが好きだ。
109デフォルトの名無しさん:02/03/02 21:24
>>105
Emacsに変なもの持ち込まないでくださいね。
110sage:02/03/02 22:06
みんなして黙っていてもしょうがないよ。Rubyで作ろうよ、ね、エディタ。時間はかかるけどね。今のままだと、一生日陰者だよ。がんばってみんなを見返してやろうよ。絵に書いた餅じゃない、「これがRubyで作ったエディタだ、使ってみろ!」って。
WindowsアプリのマクロにRubyを組み込む為の分かりやすい
キットが有ればいいのに、とPythonが組み込まれたIriaを見て思った。
どう?
>>109
よりも
>>108の方がずっと好感が持てる。
113デフォルトの名無しさん:02/03/02 22:36
>>111
そういえば Becky! に Ruby を組み込んだものってあったなあ。
>>110
別にそこまで卑屈にならんでもいいんじゃない?
エディタを作ってみようってのは悪くないけど、誰かが音頭をとって
ある程度たたき台を作らないとすすまないよ。
君がやってくれると嬉しいんだけど。
115age:02/03/02 22:43
>>113
そんな話ばっかりでお茶を濁しているから、Ruby全体がしぼんだちんちんみたいになっちゃうのよ。
117デフォルトの名無しさん:02/03/03 00:00
>>114
洩れのティムポは真のオブジェクト指向。だけど、彼女を最後までいかせたことは一度もないの。
118sage:02/03/03 00:09
>>110
一番楽そうなのは Apollo の Phi::Editor か VisualuRuby + Scintilla かな。
どっちもRubyスクリプトの色付けが可能みたい。

Scintilla(http://www.scintilla.org/) は gtk+ でも使えるけど、
誰かRuby/GTKから使えるようにした人はいる?
>>118
いないんだって。真のガベージコレクションとイテレータを駆使しても解決できないみたい。
まともなエディタの規模になるとソースの可読性が問題になるからな。Rubyの可読性はPerlとさして変わらんでしょ。作るならJavaかPythonにしとけよ。
121デフォルトの名無しさん:02/03/03 12:15
>>118
Scintilla はプログラミング言語の編集に特化したものみたいですね。
なかなかおもしろそう。
他にもいろいろ GUI ツールキットがあるから、wrapper になるクラスを
用意して、編集作業はそれを経由してやるようにするのが良いだろうか。
Scintillaじゃないけど、SciTeはPragProgのWindows Installerにもついてくるんだったっけ? これでRubyが編集できるから、みんなそれで事足りてるんじゃないのかな。
>>121
そのGUIのラッパというのもさんざん聞き飽きたよ。いつまで話だけしてんだよ。さっさと作れよ。
124デフォルトの名無しさん:02/03/03 13:11
まあまあ、Rubyがデファクトスタンダードである事実は
変えようがないんだからさ。またーりいこうよ。またーり。
脳内デファクトスタンダード?
126デフォルトの名無しさん:02/03/03 13:29
>>121
GUIラッパは、個人的な経験からいうとやめといたほうがよい。
抽象度のレベルにもよるけどね。漏れがヘタレだからうまくいかなかった
だけかもしれんが。
>>126
名前しか知らないが、
pythonのanygui http://anygui.sourceforge.net/
JavaのEclipseのSWT http://www.eclipse.org/articles/Article-SWT-Design-1/SWT-Design-1.html
RubyのLocana http://www.locana.org/

Locanaはクラスの名前が気持ち悪いし、どこまで使えるか
分からないので、今のところ様子を見てる。
>>127
RubyのGUIラッパ、ちゃんと作っている人がいるのではないの。やっぱ外人さんだね。カタログスペックをごちゃごちゃ並べたてるだけの日本勢はここらで手を引いたらどうだ。そのほうがRubyのためだぞ。
129デフォルトの名無しさん:02/03/03 15:40
やがて日本のRuby厨房文化と海外勢の間で摩擦が起きて、海外Ruby勢はForkすると読んでいるのだが、どうよ。
>>128
別に関わりたい人が関わればいいんでないの?
海外勢だってスタートダッシュだけの放置プロジェクト沢山あるし。
割合はともかく優秀な人はどこにでもいる。
とにかく使い手が増えることが肝心。
>>122
> SciTE is a SCIntilla based Text Editor
って書いてるぞ。
以前のPragProgのWindows InstallerについていたRubyWinも
Scintillaを使っていた。RubyWinはIRBが使えて便利だったんだけど、
SciTEに取って代わられたな。

SciTEはRubyに特化しているわけでないから、
RubyのIDEの需要はあると思うが、どうよ。
PragProgのWindows Installerてなにさ
RubyWin はデバッグ支援機能ないしな。

IDE for Ruby

RubyWin http://homepage1.nifty.com/markey/ruby/rubywin/
C++ 製、Ruby 用 IDE の先駆け。最近は更新されてない。

RDE http://homepage2.nifty.com/sakazuki/rde.html
Delphi 製。デバッグ支援、入力補完など現代的な IDE の機能はそろっている。
ただ、使い勝手の面で作りこみが必要かな。

FreeRIDE http://www.rubyide.org/cgi-bin/wiki.pl
CVS にソースが載り始めたくらい。
きっちり目標を決めて作っている模様。
動く実装ができるまで時間かかりそう。

>>132
これ
http://www.pragmaticprogrammer.com/ruby/downloads/ruby-install.html
Ruby.NETをVS.NETで開発とかってできないのかな
135デフォルトの名無しさん:02/03/03 16:29
>>134
できるYO!みんな使ってるYO!現実から目を背ける力さえあれば、実現できないことなんて何もないのさ!
>133さんきゅー
.NET 方面だと

NETRuby
http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/netruby.html
C# で Ruby (のようなもの) を記述。

JRuby
http://jruby.sourceforge.net/
Java で Ruby を実装。

Ruby and .NET スレ @ ruby-talk
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/33851
>>133
RDEは補完とかソースブラウザーとか大雑把にやっている感じが
して、あまり好きではないな。とりあえずFreeRIDEに期待。

あと、MacOSXだけどRubyStudioってどんな感じ?
RubyStudio
http://www.ruby-lang.org/en/raa-list.rhtml?name=RubyStudio
@ ruby-talk は死滅スレみたいになってるね。anywhere chu-bo
140デフォルトの名無しさん:02/03/03 16:58
141デフォルトの名無しさん:02/03/03 18:15
Rubyそのものは置いとくとしてもさ、プログラミング言語の発展というものに対して戦略がなさ過ぎるよね。まあ、まつもと尊師自身が「好きでつくってるだけ」というのだから、しょうがないけどさ。

言語マニアを除いた一般プログラマにとってはいくつもの言語をマスターしなくちゃならないのは苦痛なわけで、新しい言語を学ぶにはそれなりの動機付けが必要なんだよ。
JavaやPythonなんかはその新分野の開拓に成功したけれども、Rubyは結局Perlの焼き直しでしかなくて、これといった得意分野がないじゃん。何でもできます、でもどれも中途半端。Perlと同じように読みにくいしさ。

bashの前に敗れた去ったCシェルと同様の運命を辿ると思割れ。
142デフォルトの名無しさん:02/03/03 19:20
別に大掛かりな発展なんてしなくても、
絶滅しない程度に使われていけば、それでいいんじゃないのかなぁ
まつもと氏が好きで作ってるんなら、自分は好きで使ってるだけだし。

分野としてperlとほぼかぶってるってのはそうだと思う。
でも、別に「だったらperl使えばいいじゃん」って言う人は別にrubyなんて覚えなくて
perlでやればいいと思う。
自分はperlよりrubyのほうが好みだからrubyを使ってるだけ。
自分はrubyなんか眼中にないから使わないだけ。
自分はrubyなんか仕事にならないから使わないだけ。
自分はrubyが原因で首吊りたくないから使わないだけ。
そんなことよりMINDを発展させるべきだ。
俺も好きで使っているから、perl/pythonと競合しようが、 これからも使っていくつもり。 色んな所で認められて、広く使われるようになった方が もちろん良いけどね。
pythonに得意分野があるというのならrubyにもある。
149デフォルトの名無しさん:02/03/03 20:11
>>148
ぼうや、おねいさんが聞いてあげるから言ってごらん。
>>141は本当にRuby使ったこと有るのか?Perlと同じように読みにくい???
あと、Cシェルが敗れ去ったっつーのも、なんだ。あれだな。まぁいいが。bashが勝ってるのなんて・・・
LISPの人はさすが下積みが長いだけあって、現状分析が的確だ。
http://www.shiro.dreamhost.com/scheme/trans/being-popular-j.html
152デフォルトの名無しさん:02/03/03 20:29
RubyがPerlより優れている点ならたくさんありますよ。
オブジェクト指向であることも一つです。
それに、Perlみたいに弱い言語じゃないことも事実です。
エラー処理については、第一級レベルだと思います。


また始まったよ...
154デフォルトの名無しさん:02/03/03 20:33
てっかさ、Rubyが使わないから関係ないとか、プログラマにとってたくさん学ぶことは苦痛とか行ってるけど、
Perlみたいに、堕落した言語使ってたら、人間馬鹿になって、最終的に
プログラマとして無意味になりますよ。ただの自惚れじゃないんですか?
それに、プログラミング言語は、それぞれ特徴があるけど、(Perlユーザーは堕落するとか)
ほんとにプログラミングが出来る人間なら、大半の言語は同じようにに見えるんじゃないの?
基本的には、同様ですからね。
所詮はス(以下略
そうですね。スレ違いです。
>>154
端から見ると、どうみてもRubyはPerlそっくりだけど。
158trip:02/03/03 20:43
ASMTNUOE : #-xhU?zhJ
ASMN9CQ6 : #F\KFJd^*
ASMho0u6 : #Ey「'Y%nc

VB.oJQOc : #]xP:2サ.[
VBe6Xi.Q : #BxPssNQP
VBqk7G2E : #NxP:シ_|/

OBJFuKbw : #Vy%RC)Fk
OBJF1MTg : #1y%*fM4+
OBJOq.uM : #iy%@~」3Q

EXEwd/xo : #PI5w23.a
EXEH.1yY : #XI5dBm],
>>156
いや、所詮はスク(以下略
つーかさ、158みたいなわけのわからない書き込み多いんだけど、
Ruby信者って普通の会話もできないクズばっかりなの?
161158:02/03/03 20:55
>>160
クソをクソらしく利用してやったんじゃねえか。
勝手に決め付けんな低脳
162デフォルトの名無しさん:02/03/03 20:57
>141
そういう意味ではHSPの方が成功しているという事実・・・

Rubyも世俗化してWinでexeファイルが作れるようにしろ!
言語の実装上無理か・・・
Ruby>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>158
ワーイ158がキレタ!
            158がキレタ!
うわ、すげー質悪い
166158:02/03/03 21:17
ちょっと冷静になろう。Ruby厨はふたことめには「Perlは汚い」と言うが、なぜその汚い言語がここまで普及しているのか、どうして考えようともしないのか。
開発者のパワーでいえば、間違いなくインターネット上でダントツ一等賞の言語がPerlだぜ。「Rubyに決定的に欠けているものが、Perlにはあるのかも...」と発想するセンスはないの?
Rubyの良さがわかんない人にRuby勧めたってしょうがないよー
Ruby信者はうざいだけだよー
168158:02/03/03 21:22
段々わかってきたろ?Rubyはな、Perlには勝てないんだよ。
実は、166で言ったことはほんの序章に過ぎないんだ。
本当のPerlの力とは、天才ハッカーの作者が作り出した
「Perl教」。これにある。これに入ればなにもせずに
ただでどんどんお金が入ってきて、しかも願い事は全てかなうという
最強の宗教だ。さぁ、今すぐ入会を会をカイヲカイヲカイヲ
169158:02/03/03 21:25
Perlの力にかかればな、まつもtなんかチョイだぜ、チョイ。指でな。
指でチョイってやるだけなんだよ。そうだ。チョイだ。
それに追い討ちをかけるかのごとくチョイとやれば、
もうRuby厨なんかチョチョイノチョイだ。わかるか。チョイなんだよ。指でな。
あとは、わかるな?
>>141
そうはいうものの、Ruby レベルに発展した言語自体少数だよ。
かなり成功してると思うが。

>>152
弱い言語ってなんだそりゃ。
Perl6 でかなり機能が追加されるから、
現在ウィークポイントとなっている言語仕様は改善される(はず)。
まあ、同時に今よりごちゃごちゃするが。
Python もイテレータ装備した。
上品に使う分には Ruby の言語仕様の機能的優位性はないと言っていい。

>エラー処理については、第一級レベルだと思います。
rescue すべき例外が実行前に分からないのが Java と比べて相当面倒。
開発環境でサポートすべき点だ。

>>162
バイナリコードに落とすのではなく、
パックして exe ファイル作るツールはある。

rb2exe
http://www.os.rim.or.jp/~eban/
rb2exe (同名)
http://yuya.4th.to/ruby/rb2exe/
rbwrap
http://www.ce.chalmers.se/~feldt/ruby/applications/rbwrap/
171158:02/03/03 21:30
>>170
クソをクソらしく利用してやったんじゃねえか。
勝手に決め付けんな低脳
172158:02/03/03 21:30
>>170 スレ違い。
おまえらマジメにPerlの事について語ろうぜ!
>>166
QuickHack に適しているから
それとちょうどインターネットの成長と時期が合ったのも普及の要因
ム板も最近こんなのばっかりだな…
>>166
Perlが先に普及したからに決まってんじゃんよー
時系列考えなー

そもそもPerlが存在しなかったらRubyも存在しなかっただろうし。

QuickHack(フ?フ?
>>173
90年代初頭、Perlはすでに広く使われていたぜ。DOSエクステンダ上で。日本でもCマガジンなんかが特集していたし。
Perlはめちゃくちゃ必要だけど、
Rubyは別に存在しなくてもいいよね。
>>177
そっか。やはりテキスト処理の能力かね。
Perl 以前のテキスト処理に強い言語って何があるかな。
awk と sed か。
>>141
>そういう意味ではHSPの方が成功しているという事実・・・
>Rubyも世俗化してWinでexeファイルが作れるようにしろ!
>言語の実装上無理か・・・
実装上無理って、>>170にあるように存在するジャン。どーせソースも読んでない癖
にえらそうなこと言うなよ。こういう計算機学の素養を感じさせない人間がRubyを攻撃するんだよね。
たぶんHSPとかDelphiとかの厨房向けツールを使っただけでいっぱしのプログラマに
なったつもりなんだろーな。煎ってよし。
Rubyも初心者向けだけど、使う人はコンピューターサイエンスの分かった人が多い。
なぜなんだろう?
日本人がつくった言語が天下をとれるわけないだろ。
182デフォルトの名無しさん:02/03/03 21:53
やっぱりアンチRUBYはサヨク
183デフォルトの名無しさん:02/03/03 21:57
Rubyな皆さん。あなたたちは180>>みたいなのを大量生産して、世にのさばらせているのですよ。この責任をどう考えているのですか?
184デフォルトの名無しさん:02/03/03 21:58
温泉に逝って作者の話聞いてきます
http://spa.jssst.or.jp/
え?
>たぶんRuby使っただけでいっぱしのプログラマになったつもりなんだろーな。煎ってよし。
>Ruby使う人はコンピューターサイエンスの分かってない人が多い。
>なぜなんだろう?
>>180 大筋同意だが、HSPもDelphiも厨房向けツールではない。
>>185
>なぜなんだろう?
つーかキチガイがやたら多い
>>187
つーか基地外はRubyをネタにするただの荒らしだと思われ…
٠٩٧٣هخخخخخخعف٤٣صضسيسسسسسغ(|)

 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |  はいはい
 |  取り壊しの邪魔だから出てった出てった
 \___  ______________
        |/_____
   , --、    |  |._ |   rubyはやっぱクソだったな!     まったくだ
  f=+=l.    |  ||.R|.|        ∧_∧       ∧_∧
  (,,゚Д゚).   |  ||.u|.|       ( ・∀・) ニヤニヤ (・∀・ )
  ⊂  つ .  |  ||.b||       (    つ     (    )
 〜|  | 彡  |  ||.y||       | | |       | | |
   し`J    |  | ̄ .|       (__)_)      (_(_)
 ~~        ̄ ̄ ̄     ~~
                           ~~

   ゴゴゴゴゴ

      /ゝ     ┌―┐ <--Ruby
      / ●.  ┌┘品└┐
  {{ []台      | ロロ ロロ.|
  ̄ ゚゚゚゚゚゚̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄


         \\あぼ――ん/ /
            (´;)
        /\  (;)┌―┐
        / <<●(´;;;) └┐ }}
       []台   (;;⌒);;;) ロロ.|
  ̄ ̄ ̄ ゚゚゚゚゚゚̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

                          ―Ruby完―
>>189こういうのがほんとの荒らし。なにいってんの?>188
Ruby以外の言語は糞。何度言ったら分かる?
>>189=191
いいかげんにしる!
 ∧||∧
(  ⌒ ヽ ああ、、もうだめぽ。
 ∪  ノ この板で紅玉の繁栄はありえないぽ。
  ∪∪  
       /         /.    │    ヽ          \
 ∧ ∧/          /.     │     ヽ         ∧\∧
(  ⌒ ヽ           /      │      ヽ        (  ⌒ ヽ
 ∪  ノ          /      │      ヽ         ∪  ノ 
  ヽ_),)           /       │       ヽ        し' l_ノ
       ミ      /       │        ヽ      
            ∧ /∧      │       ∧ヽ∧  彡 
           (  ⌒ ヽ      │      (  ⌒ ヽ
            ∪  ノ ミ  ∧│∧  彡   ∪  ノ
             ヽ_),)    (  ⌒ ヽ      し' l_ノ
                     ∪  ノ
                      ヽ_),)


   ||     ⊂⊃
   ||    ∧ ∧
   ||    (  ⌒ ヽ
 ∧||∧   ∪  ノ  
(  ⌒ ヽ 彡  V   
 ∪  ノ  フワーリ
  ∪∪
   ||     ⊂⊃
   ||    ∧ ∧   
   ||    (  ⌒/   
 ∧||∧   ∪ / /ヽ   消えろ
(  ⌒ ヽ 彡   / ノ   
 ∪  ノ      V
  ∪∪
         ∧ ∧,〜  トドメ!
        ( (⌒ ̄ `ヽ    _
          \  \ `ー'"´, -'⌒ヽ
         /∠_,ノ    _/_
         /( ノ ヽ、_/´  \
       、( 'ノ(     く     `ヽ、
      /`   \____>\___ノ
     /       /__〉     `、__>
   /        ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  /
クソスレニハクソレスガオニアイダヨ
      ∧_∧
      ( ´∀`)
   γ⌒" ̄ `Y" ̄`⌒ヽ
  /´  、   ¥   ノ  `ヽ.
 / ,-ュ人` -‐´;`ー イ` ェ-、 ヽ
 l 「  } i 彡 i ミ/ {  `ノ
 ` `ー' .}    {  `ー'´/ ̄ ̄\
     /      \||  |  Ruby! |
    /   /`ヽ、 i |i  \  _/
   /  ノ    l| | i|   //
   \  `ヽ    |    ||  /
     \ \  l|| l|i | ,, '⌒Y
      ノ  _>‘、|l  |・i/ノ , ノ >>1
     <.,,_/~,-・i |゚;・li。i,・'(__,.J

                        ∧_∧  / ̄ ̄ ̄
                      ∧( ^∀^)< 200ズザー
                    ∧(  ( つ ⊂ )  \___
                  ∧( ( つ.)  ) )
                ∧( ( つ  (__)_)
              ∧( ( つ (__)_)
            ∧( ( つ (__)_)
          ∧( ( つ (__)_)
        ∧( ( つ (__)_)
      ∧( ( つ (__)_)
    ∧( ( つ (__)_)
  ∧( ( つ (__)_)
 ( ( つ (__)_)
 ( つ (__)_)
 | (__)_)
 (__)_)

ソシテクソゲンゴニハクソスレガオニアイ
202141:02/03/03 23:14
>180
すまん、言い方が悪かった。
何が言いたいのかというと、HSPは言語仕様などに問題が多い厨房ツールかもしれんが
ターゲットとなるユーザーを定めて、結果として成功してるだろ、ということ。
Rubyを流行らせる気があるのなら、そういった戦略をもっと考えるべきだよ
ずっとマイナー言語のままでいてもいいのなら何も言わないが。

203デフォルトの名無しさん:02/03/03 23:19
色々あったけど、結局Rubyで書かれたエディタが存在しないのはなぜなんだ?おまえら、答えてください。
Perlで書かれたエディタってあるの?
205デフォルトの名無しさん:02/03/03 23:23
>>184
オレも逝ってくるよ
いま発表スライド書いてる最中(w
206デフォルトの名無しさん:02/03/03 23:26
>>204
あるよ。わけのわかんないのがうじゃうじゃ。オライリーから本が出ているのにエディタが書けない言語って、RubyとSQLくらいじゃない?
>>206
ほほー。
てか書けないの?Rubyでエディタは作れないの?
208デフォルトの名無しさん:02/03/03 23:42
>>206
結局 Ruby を攻撃している人って、Rubyのことをろくに調べもせずに
攻撃しているんだよね。

まあ、Ruby厨の振る舞いを見ていれば腹を立てる気持ちは
わからんではないけど、それじゃ荒しに反応しているのと一緒。
Ruby厨なんてアホなんだからほっとけばいいんだよ。
同じレベルに落ちて反論しているなんて見てて情けないよ。

Ruby で書かれたエディタなら昔からある。このスレの上のほうを見ろ。
>>202
せっかく Ron Jeffries も Ruby に興味もってくれていることだから、
XP と連携したプロトタイピング言語というのはどうかな。
UnitTest だけでなく、リファクタリングツールも開発して。
ってプロトタイプでリファクタリングしてどうする…
それと、Perl の後追いではあるが、
Web アプリケーション方面で実績ができれば道が開けると思う。
WALRUS に期待してる。
dRuby も手軽で面白いから使い道を見つければ。

>>203
いや、あるけどさ。実用性はともかくとして。
つうかエディタが作れると何がどうなんだっけ?
UNIX だと Emacs と vi という二大エディタがあるから、
「Ruby で作る」 という以外にモチベーションがない。

mine (Ruby/Tk)
ftp://ftp.ruby-lang.org/pub/ruby/contrib/mine-0.0.4.tar.gz
VRedit ( Ruby/Gtk )
http://priest.team-ct.org/~dellin/ruby/#vRedit
Apeed ( apollo )
http://member.nifty.ne.jp/take_tk/apollo/index.htm
RuEdit ( Ruby/Gtk )
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/22766
>>208
なんだ、あるんならあると早く言ってくれよお。けど、このスレの上を読めって、そんな殺生な。どこですかいな?
>>209
志が低いのお。Emacsってエディタの最終完成型なの?エディタってものがこの後進化する余地ってないの?EmacsがLISPでそうしているみたいに、Rubyでエディタを書いて、Rubyで拡張できる、そうすればもっとすごいものができる、とか考えないの?
>211
Rubyは関係ないけど、そういうマクロで拡張できるエディタっていう
コンセプトはEmacsが最終形というか、もうすでにやりすぎてるって感じ。
213sage:02/03/04 00:11
>>206, >>210
Rubyで書かれたエディタとしては >>209 が挙げたのが有名で、
その他のRubyで書かれたエディタは知らない。
>>118 にエディタ用の拡張ライブラリとして
2つほど上がっているが、アレはエディタではない。

>>209
Walrusはobaqライブラリだけ取りだして、Webrickと組み合わせると面白そう。
上手くやればZopeまがいを作れるかも。
ただ、日本語のドキュメントすら不足している現状では
Walrus/obaqは広まりそうにはないな。
最近、開発が止まっているみたいだが、IOWAはどう?

エディタに関しては激しく同意。
>>212
ああ、夢がないのね。どうして今すでにあるエディタとか、マクロというレベルでしか発想できないのかね?Emacsなんて4半世紀も前に設計されたものだぜ。どうせ考えるなら、これから25年後のエディタを考えたら?
あと、自分で自分を拡張し、その拡張された自分自身でさらにもっと拡張するって手法自体はソフトウェア開発において、今後も長く続く手法だと思うけどね。
215デフォルトの名無しさん:02/03/04 00:55
>>213
あの、Rubyを攻撃するつもりはないんですが、ZopeとWalrusを一緒にするのは止めていただきたい。現状はEmacsとメモ張を比較するようなもんなので。
216デフォルトの名無しさん:02/03/04 01:09
んん・・・
オレも煽り無しで言いたいのだけど
Rubyが優れていても業務に使えない言語を学ぶのは躊躇してしまう。
Delphiもそうなんだけど。

RubyもDelphiもそのユーザーが擁護する気持ちは分かるけど
それがスキルとして認められるのか? と言えば疑問だし。
>>215
Zopeは詳しくないが、WalrusとZopeではレベルが違うのは分かっているつもり。
そういう意味をこめて「まがい」を付けた。
>>216
つーことは VB、C++、Java、C# しか学ばないと?
219デフォルトの名無しさん:02/03/04 01:18
>>215
あの、Zopeを攻撃するつもりはないんですが、

17 名前:名無しさん@お腹いっぱい。 投稿日:2001/11/14(水) 23:34 ID:???
Zopeか。
ちょっと使ってみた感想としては技術ヲタ向け玩具の最高峰という印象。
基本的に遅い、原因不明落ち、妙な独自仕様で汎用性無しと、業務系で使うにはちょっとためらう要素が満載。
技術的には結構面白い構造してたりするので趣味の範囲内でいじってみようかなとか思っているが。

だって。まあWalrusは開発始まったばかりなのでZopeにも追いついていないんだ
ろうとは思いますが。
>>216
正直, Ruby は簡単に使える(それはすばらしいことなんだけど)ので、
使えてもスキルつーほどのものにならない。差別化しにくいから。
ある意味で VB と一緒。
道具としては便利だし、言語マニア的フィーチャーに溢れているから
試してみるくらいしてもよいと思う。簡単だし。
221デフォルトの名無しさん:02/03/04 01:36
>>219
あの、Walrusを攻撃するつもりはないんですが、

「開発始まったばかりなのでZopeにも追いついていないんだ」というのは「身のほどを知れ、誰にモノ言ってんだゴルァ!」という気がします。伊達に「技術ヲタ向け玩具の最高峰」を名乗っているのではありません。
ZopeヲタとRuby厨って似ているなあ。
223デフォルトの名無しさん:02/03/04 02:08
>211
そういう君はEmacsを超えるものを作ったのか?
言いがかりにしか聞こえんが。
そんなに褒めるなよ。照れるぜ。>>222
225デフォルトの名無しさん:02/03/04 02:30
>>223
そうゆう君はEmacsを越えるものを発想するぐらいのことはできんのかね?
頭が悪いようにしか見えんが。
ちょっと言い方が意地悪いと思うけどね。>>225
既存のものの後追いだけじゃメジャーになれんというのは、その通りだと思う。
>>226
既存のものの後追いだけじゃ駄目ってのは、たしかにそうだと思う。論点が
ちょっとずれている気がしないでもないが。
でも Ruby を攻撃している人って、自分は何もできないくせに口ばっかり
のやつが大半じゃないか?。あと Ruby のことをろくに知りもしないやつとかね。
やってることは Ruby厨と同じくらいたちが悪い。ようするに Ruby攻撃厨だな。
Ruby厨はレベルが低くてつっこみどころが多いのはたしかだが、のせられている
やつもみっともないと思うよ。それとも確信犯なのかね。
228デフォルトの名無しさん:02/03/04 14:13
>>227
だからあ、きみみたいのをRuby厨て言うんだからあ、自覚してよ。
229デフォルトの名無しさん:02/03/04 14:31
なんでRuby関連のスレって荒れてるんだ?(数が多いからってのはわかる)

俺はRubyが日本人が作ったスクリプト言語でオブジェクト指向って程度しか
知らないんだけど、なにが理由で叩かれてるの? 雑誌だとマンセー記事
ばかりだしわけわかんねぇよ。

正直、「Ruby厨うざい」とか「Ruby糞」だけだとなにが悪いのかさっぱりな上に
むしろそう言っている奴の方がよほど厨房に見えるのだが。Ruby使いが増えると
なにか困るのか? アホ言語だったらメジャーになられると迷惑ってのは理解
できるから、アンチのひとはどのへんが嫌いなのか真面目に教えてくれ。

門外漢として思い付くのは、

1.言語仕様が不細工
2.実行速度が遅い
3.ライブラリが未整備
4.日本人以外使わない
5.作者の人格が嫌い

てなところだがどうよ。
自分はRuby愛用者なので、公平な意見ではないかもしれないが。
(ちなみに、仕事で使ってる(た)のは、C,C++,Java。趣味ではPerl)

1.言語仕様は好き嫌いは別にしてすっきりしてると思う。
2.遅い。これは事実。
3.まぁ、少ないかもしれない。が、荒れる理由にはならない。
4.絶対数では、外人(英語圏)のほうが全然上だと思われる。MLの
流量も4,5倍有る。
5.愛想のある人ではないが、そもそもRuby使ってなければ、松本
氏の発言なんて見かけないだろう。

たんに、マイナーなイメージの割に使用者が多いので、ネタになりす

だけだと思うが。
全部いいがかりじゃないか。。>>>229
>>228
客観的に見ても >>227 より >>228 のほうがずっと厨に見えるな。
Ruby厨にしろ、Ruby攻撃厨にしろ、ウザい連中につかまっちゃって
気の毒に思う俺は主に perl 使い。
>>227
板の書き込みを良く見てると
上がっているスレに満遍なく煽りレスを
入れてる人がいたりするのが分かるよ。

叩くのに理由はいらない。
何にでも当てはまるような言い方をすれば良いだけ。
それと Ruby の場合叩き方のテンプレも豊富だったり。
>>229
「って程度しか/知らないんだけど」って言ってるヤシが
「思い付くのは、」などと煽るから荒れるんだろが (゚Д゚)ゴルァ

(;´д`).。oO(ム板なのにプの字にトライすらしないやつらだろ?)
235229:02/03/04 16:38
ああ、すまん。
「煽り文句として思い付くのは」という意味だ。

結論としては、煽っている奴は単なる好き嫌いを吠えてるだけということでよろしいか。
236デフォルトの名無しさん:02/03/04 22:18
これまであまり言及されなかった事なんだけれど、
OOを前面に打ち出した事で低知識階級の反感を
買ってしまった。というの実際のところだろう。
237デフォルトの名無しさん:02/03/05 15:08
ちょっと目を離すとすぐこれだ>>236

00くらい知ってるぜ。00000000だろ。
>>236
「低知識階級」はかわいそうだろ。
OOくらい分かるだろう。。。
だれでも。
24000:02/03/06 00:41
真のオブジェクト指向。

これといって何が作れるってわけでもない。

けど、真のオブジェクト指向。

それが何の役に立つのかわからない。

でも、真のオブジェクト指向。
241デフォルトの名無しさん:02/03/06 04:18
alias の引数に制御構造を使えないのが辛い
(defalias 'hoge
(if CONDITION
'fuga
'moge))
みたいなのが出来ないのは面倒スギ
alias はシンボルに別名を与えるだけだかんね。
マクロ的なことができると可読性が落ちるというのもあるかな。
今でも eval 系を駆使すれば(ある程度マクロ代わりになる)、
いともたやすく他人が読む気をなくすコードにできるけども。
意味不明瞭だな。

s/落ちるというのもあるかな/落ちる/
>>241

class Hoge
def hoge
p 123
end
def fuga
p 456
end
alias :foo :hoge
alias_method :baz, (:fuga if $DEBUG) || :hoge
end

h = Hoge.new
h.foo
h.hoge
h.baz

Module#alias_method ならメソッドなので、
こういうこともできるけど、ちょっと違うかな?
自分ではこんなのを使おうとは思わないが。
245241:02/03/06 05:54
>>244
あぁ、だいたいそんな感じです。ありがとう。
ただ、今いじってるのは小さなスクリプトなので
クラスとか設けてないんだけど、クラスを指定してないと
alias_method は使えないみたい...。使いにくいなぁ。

>自分ではこんなのを使おうとは思わないが。
うーん、こーいう考えって Ruby には向いてないのか...
へこむなぁ。
246デフォルトの名無しさん:02/03/06 07:55
Rubyってただ日本人が作ったから愛国心で
みんな(・∀・)イイ!て言ってるだけだろ?
247 :02/03/06 07:58

    おはよう 
本屋で256倍シリーズのずらっと並んだ背表紙を見るたび
ユーザに恵まれてないんだなあと思うよ
>246
そうなんだよね
こまったもんだ。
「低知識階級」の嫉妬はみっともないねぇ
OO理解できなくても生きていくことはできるから気にするな
251デフォルトの名無しさん:02/03/06 16:04
ruby がすごいっていう人は
ruby に移植してみて
おれにはどんなことをしてるのかさっぱりわからん
有名だけどね
#!/usr/bin/perl -w
# 531-byte qrpff-fast, Keith Winstein and Marc Horowitz <[email protected]>
# MPEG 2 PS VOB file on stdin -> descrambled output on stdout
# arguments: title key bytes in least to most-significant order
$_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(
$m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($_%16
-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h
=5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$
d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^
$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t[$_]^
(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval

252デフォルトの名無しさん:02/03/06 16:09
>246,249
何でLinuxが発展したか知ってるのか?
Linuxの開発者にはなぜヨーロッパ人が多いのか知ってるのか?

ヨーロッパ人のアメリカに対する反発心からなんだよ
アメリカに迎合しすぎる日本人にはホントあきれるよ
もっと日本人としてのアイデンティティを持てよ、おまえら。
253ななしさん:02/03/06 16:19
>>253
またドキュソなことを。るび厨ばかにされるだけだよ。
Linuxの代替はそのころなかったじゃないか。

それにLinusやGuidoは今アメリカの会社ではたらいてるんだけど反発心で
技術のない人はどう反応したらいいのかね?
252も変だが253も何がいいたいのか良くわからん。
本質と関係ないところでくだらん議論はやめよう。

Ruby は日本以外でも使っている人は多い。正確な数は測りようもないが、
MLの流量などを見ていると日本以外で使っている人のほうが多いんじゃないか?

雑誌なんかでとりあげられるときに日本発の言語ということが(めずらしいので)
クローズアップされやすい傾向はあると思う。

まあ日本人としては、作者に直接日本語で質問したりリクエストしたりしやすいって
のはメリットのひとつかもしれない。ドキュメントの質や量は、もはや日本語より
英語のもののほうが上だろう。
255252:02/03/06 17:23
プログラマという人種は良くも悪くも合理的なのかな?
愛国心という不合理な心理を持ち込むのがいやなのか?
それとも単にアメリカ迎合主義?
多くの人に使ってもらったほうがフィードバックが多い。
それだけだろ。
日本生まれだから人気ってことは無いでしょう。

外国でもぼちぼち使われているのでは?
http://www.pragmaticprogrammer.com/ とか
>>257
まぁ、使いたい人が使うわけ。だよね。
http://www-6.ibm.com/jp/developerworks/linux/011102/j_l-ruby1.html
>>252
一般日本人に愛国心が希薄なのは偏った戦後教育の結果。
ほとんどの国では自国への愛国心が育つような教育をするのが常識。
中国・韓国などは国家戦略として日本人の愛国心を失わせるような対日本外交を行っている。
板違いだな。
SAPIO読め(藁
260Ruby!:02/03/06 22:29
>259
つまりこの板のアンチ厨どもはスパイだったということですね(w
まあ気づかないうちにスパイになるということは割とありそう。
真相がわかったところで、
Rubyマンセーーーーーーーーーーーーーーーーー!!!!!!!!
Ruby>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Perl
Ruby以外の言語は糞言語です。
はぁ。すっきり。
261デフォルトの名無しさん:02/03/07 09:23
Rubyには260みたいのがたくさんいて、みんなシアワセだね。
>>261
260みたいなのがいて、むっちゃ迷惑しています。察してください。

というか 260 は低知識階級のジサクジエンだろ。おもしろくもなんともない。
荒しはくるな。
>>262 (´-`).。oO(ハゲドー)
てか、職場でセッセコセッセコと、ツールを Ruby で書いているんだが、
同僚にスクリプトを使って貰えなさそうであるということに気づいた漏れ漏れ。

蓋し、萬國のPG労働者は Ruby くらい使えるようになれよ、と。
いま就職活動中なんだけど、
セミナーの社員に質問するコーナーで使ってる言語を聞くと
Perl や Ruby でツールを作って…という話を結構聞くよ。
ヽ(;´д`)ノ
Windows 98 SE.

Ruby 使って、 hoge.lzh みたいな書庫に
foo.doc みたいなファイルを
yyyymmdd_hhmmss_foo.doc みたいな名前でガシガシと
突っ込んでみたかったんですが…

書庫に突っ込むファイルの名前を任意にしたいっつー時点で
「テンポラリなファイルを作んなきゃいけねーのかyp!」
「DOS窓の copy とか xcopy とか使わなきゃ、なのかモナー」
「ファイル作ってから lha32.exe を動かすっつー同期は、どうよ?」
「たけ(tk)さんの Archives.txt をためしてはみたんだけどさ、
 DLL のほうの仕様が変わっちゃってるみたいで、なんだかなぁ…」
などと、悶絶して死にそうです。

せっかく、 WSH で やろーかなっつー迷いを払拭したところダターので

∧ ∧
(´-`).。oO(だれか救ってくれろ)
 つーことで禿規模。禿規模。
>>265
圧縮ファイルの形式がlzhでなくて良くて、
cygwinのrubyを使っているなら(zlib.soも必要?)、RAA の
Ruby/zlib + rubyzip が良いんじゃない。

Ruby/zlib http://www.blue.sky.or.jp/atelier/ruby/
rubyzip http://sourceforge.net/projects/rubyzip

試しに書いたサンプル。

require 'zip'
require 'find'

files = []
Find.find(ARGV[0]) do |filename|
if FileTest::readable?(filename) and FileTest::file?(filename) and /.*\.rb$/ =~ filename
files.push(filename)
end
end

Zip::ZipOutputStream.open("exampleout.zip") do |zos|
files.each do |name|
zos.putNextEntry(name)
File.open(name){|f| zos.puts(f.read) }
end
end

上のスクリプトで作ったzipファイルは
cygwinのunzip/Lhut32で解凍できたよ。
267266:02/03/07 22:24
>>266
zlib.soはlibz.aの間違い。
すまん。逝ってくる。
268265:02/03/08 10:38
>>266-267
(´д`)ノ  激しくありがとうございます。
追って経過・結果をお知らせします。
269デフォルトの名無しさん:02/03/11 00:00
Rubyスクリプトでsetuidなことをしたいのですがどうすれば良いでしょうか。
suidperl に相当するものってない?
>>269
今はない。
swap_uidの名前問題が解決したら出来るようになると思う。
271269:02/03/12 17:11
>>270
ありがとうございます。
今はできないのですね。やむを得ず C でラッパーを作って
それを setuid することにします。
272デフォルトの名無しさん:02/03/12 20:57
Rubyに関しての
初心者用質問スレはどこですか?
ここ
274デフォルトの名無しさん:02/03/12 21:20
def [](key)

これわからないのです。
誰か教えて頂けませんか?
hoge[1] <- これ
276デフォルトの名無しさん:02/03/13 10:11
>>274
Rubyでは、一見そうとは見えないようなものもほとんどメソッドとして実現されています。
例えば配列やハッシュの要素参照である a[key] のような表記も、key を引数に [] という
メソッドを呼び出していると解釈されます。実際試してみればわかりますが、
a[key] と書くところは a.[](key) とも書けます。

ほかにもほとんどの演算子がメソッド呼び出しです。 1 + 2 は、1.+(2) と同じ意味です。
277デフォルトの名無しさん:02/03/13 18:26
>>276
ありがとうございます。

yieldの読みと、
yieldの効果的な使い方がいまいちわからないのですが。。
278デフォルトの名無しさん:02/03/13 18:55
>>277
> 読みと
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=yield&sw=0
から「イールド」が近めなんではないかと。
> 効果的な使い方
ブロックを取るときに使います。hoge.each、hoge.timesなどはこれを使っています。
("do || ... end"の部分をこれで呼び出すわけです)
Lispのlambdaをかなりヘボくしたようなものです。
279デフォルトの名無しさん:02/03/13 18:59
>>278

ヘボくしたのかよ・・・。

俺が Ruby 使いはじめのとき教えてもらったのが
「yield は繰り返せるreturn みたいなもんだ」と言われて、なんとなく
納得した。

Ruby のイテレータは強力やね。

(ぶっちゃけ、もう今後 Ruby を超えるスクリプト言語は出ないんじゃ
ないかと思う。)
>Ruby のイテレータは強力やね。
なにが?
>>279
最強の言語なんてものは存在しない。不毛な話はやめとこう。

>>278
Rubyにもlamdaあるじゃん。
Rubyのメソッドは、普通の引数だけでなくブロックをつけてよぶことができます。
そのようなメソッドのことをイテレータといいますが、この名前はあまり適切では
なく、必ずしも繰り返しとは関係ありません。
それはさておき、引数といっしょにメソッドに渡されたブロック部分を実行する
のが yield 文です。ちょうどメソッドの中から、メソッドを呼び出した側で指定した
処理を実行させるようなイメージなのでコールバックと呼ばれることもあります。
yield に引数をつけて呼び出すと、それがブロックに渡されます。ブロックでの
引数は | | で囲んで受けます。
283278:02/03/14 09:48
>>281
……。逃げます。
(Lispのlambda引数とRubyのブロックの自由度の違いは単なる思想の違いだと言えるからね……)
鬼車ってどうよ?
ていうか、どうやったら使えるの?
285デフォルトの名無しさん:02/03/21 22:11
>>284 Rubyistに記事でてますね。つか、鬼車、RubyでGoogleで検索しても一件もヒットしないから
誤爆かと思ったよ。
286デフォルトの名無しさん:02/03/21 23:21
Rubyって最近バージョンアップしてないんじゃないですか?
Windowsの環境はそろってるんでしょうか?
しばらく前に使った時はまだ一般に受け入れられるほど
使いやすくはなかったです。基本的にコマンドラインで。
>基本的にコマンドラインで。
この点はおそらく永遠に変わらないので、君は一生使わなくて良いよ。
>286
最近 Ruby 1.6.7 が出てるね。Windows版が出ているかどうかは知らんけど。
289デフォルトの名無しさん:02/03/22 03:58
>>133
にWindows用のinstallerへのリンクがある。
最新の奴にはFOXとTkの拡張ライブラリが付いてたはず。

ところで、WindowsってやっぱりGUI無しでは駄目なのか?
>289
Visual Studioに組み込んでプロジェクト管理&デバッグ
できないと使う気がおきましぇ〜ん
291265:02/03/22 12:59
>>290
管理は WinCVS で足りる
292289:02/03/22 15:20
291に同意。
おれはWinCVSの使い方が分からなくて、
cygwinのcvsを使っているが(w

後はDebuggerだな。deubg.rbのGUIラッパーでもあれば
良いんだが、今の所 Emacs/Meadow と RDE
くらいしか知らないな。
293291:02/03/22 17:36
(´-`).。oO( 291(ニクイ)ゲトー ズサー )

>>292
デバッグについては、ですね、
print を多量に埋め込む…
               …諸刃の剣。
(;´д`).。oO( そか、debug.rb ですか。漏れも遠慮なく逝って来ます )

あと、標準出力に出てくる エラーメッセージは 、
リダイレクトしてファイルに保存。
 (´-`;).。oO( なんで標準出力なんだろう? )
294デフォルトの名無しさん:02/03/22 20:45
エラーメッセージは標準出力じゃなくて、標準エラー出力でしょ。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/14601
295292:02/03/22 23:04
>>292
deubg.rbってなんだよ、おれ。

>>293
printよりはpかppを良く使う。
最近はppの方が多い。
ppは標準でついていないのが痛い。
何にしろインタプリタ型言語だと、print相当の命令を埋め込んで
デバッグすることがほとんどだな。埋め込んで即実行できるからね。
Cではデバッガを使うけど。
どっかのすげー外人がVS.NETに組み込んでくれないかな。
298295:02/03/23 15:48
>>296
CVSのroughにはppがあるから、
1.8くらいでは標準で付くんじゃない?

今のdebug.rbはかなり遅いから、
基本はp,ppでデバッグして、
debug.rbは必要になったときだけ使うようにしている。
>>284
$wget ftp://ftp.ruby-lang.org/pub/ruby/snapshot.tar.gz
$wget ftp://ftp.ruby-lang.org/pub/ruby/contrib/onigd20020313.tar.gz
$tar fvzx snapshot.tar.gz
$cd ruby
$tar fvzx ../onigd20020313.tar.gz
$cd oniguruma; ./configure; make 172; cd ..
$autoconf; ./configure; make
>>299
ありがとー。なんて親切な人なんだ。試してみるよ。
プログラミングは、Perlがある程度できるだけ、という人に
Rubyの本を何か一冊薦めるとすればどれ?
そもそもperl知ってればrubyに手を出さないと思われ
>>302
同じくその本(プログラミングRuby)を薦める。もうちょっと初心者向きだと
オーム社の「Rubyプログラミング入門」かな。
>>303
そんなことはないでしょ。
実際俺は Perl をかなり使い込んでいたが Ruby に乗り換えた。
305デフォルトの名無しさん:02/03/24 12:06
>>302
それはProgramming Rubyの日本語訳なのかな?

http://www.rubycentral.com/book/index.html


306デフォルトの名無しさん:02/03/24 12:24
>>305
そうです.
英文読んで気に入ったら,本を買うのがよろ紙
#本であると使いやすいしね
日本で作られた言語なのに、英語による本のほうが良いというのは
いかがなものか?
やはり英語圏の人のほうがユーザが多いってことか。
英語圏というか、
欧米圏だろ
Rubyの詳細について知っていて、かつ書籍を書ける人が
日本にいなかったということでは。
文章を書く能力とプログラムを書く能力は
一致しないでしょう。

今では 英語圏ユーザー > 日本のユーザー ですね。
ruby-talk, ruby-list の流量の差からもわかると思います。
ruby-talk はしょうもない質問や議論も多いけどね。
ruby-list の敷居の高さに乾杯。
311デフォルトの名無しさん:02/03/25 04:50
いるとは思うけど、著者がすっかり定着してしまったように感じる。
話題も偏っている?

312nanasi:02/03/25 06:10
Ruby使いかけたけど、ライブラリの質が低いからやめちゃったよ。
標準添付のライブラリ使えなさすぎ。
英語圏の人が増えて改善されてるの?

ruby-talkの流量が多いのはusenetと連動してるからだよね。
rubyのオブジェクトって参照カウンタ使ってるの?
>>307
(´−`).。oO( >>303 のような人が日本に多いから )
def f(i, j)
 i + j
end

f(1
,2)

が通らないのって仕様?
>>315
何をしたいのかサパーリ… 
改行すんなよ
>>315
Ruby は C やPerlと違って、改行は空白と同等ではありません。
改行は、式や文がまだ続くと明白にわかる場合以外、式や文の終わりを意味します。
この仕様には賛否両論があるでしょうが、Rubyの仕様のほうが ;(セミコロン)などの
文末を示す記号が必要ないので、個人的には好きです。; を省略できるのはとっても楽。

その代償として、式の途中で改行する場合は、parserが理解できる範囲で、まだ式の
途中であることが明白である必要があります。315の例では、

f(1,
2)

とすれば通ります。

315でも括弧が閉じてないから文の途中であることは明らかじゃないかと思うかも
しれませんが、LALR(1)の範囲内ではたぶんそう判断するのは無理なんだろうと
思います。
VBみたいな仕様だね
printfみたいな関数は
printf(
"hoge%d%s%f"
,param1
,param2
,param3
)
と書いたほうがコピペしやすいと思うんだけど、どうよ
好きと言い張るのは勝手だけど。
>>320
printf(
"hoge%d%s%f",
param1,
param2,
param3
)
これとそんなに違わない気がするけどどう?これなら Ruby でも通るんだけど。
>>321
いや、param1/2/3が同じ風に書けることを言いたいんだと思ふ。
引数増やしても全部「,引数」という形式だからコピペやすいとか。
>322
なるほど。そうだとしたら確かにそうですね。
しかし、カンマの前に改行を入れるスタイルって、C でもほとんど見たこと無いですが。
それに printf だからいいんですけど、320スタイルでも第一引数は特別扱いしないと
いけないし。
324315:02/03/25 19:36
なるほど、ためになりました。

もともとは
f(<<EOS1
hogehoge
EOS1
,
 <<EOS2
foofoofoo
EOS2
)
と、ヒアドキュメントを2個書きたいのでした。

これは結局
f(<<EOS1,<<EOS2)
hogehoge
EOS1
foofoofoo
EOS2
と書けることが分かったのですが、
コンマの書き方で通らなくなるのは何でかなぁと思って。
312じゃないけど、今の標準ライブラリで不満なところとか、
今後標準添付して欲しいライブラリとかある?

俺は標準ライブラリはあまり使わないので、
今のところ不満はない。

将来はdiff(RAAにpure rubyの実装があったような)と
xmlパーサーは標準で付いて欲しい。
あと、RDtool、RDoc、RubyUnit、pp も。
>>313
ruby の GC は参照カウンタではなく、mark-and-sweep 方式を使っています。
Java などと同じ方式です。
>俺は標準ライブラリはあまり使わないので、
それって標準と同機能の代替ライブラリ使ってるって事?
それとも標準の機能そのものが不要って事?
前者なら思いっきり不満って事では...
328325:02/03/26 20:52
>>327
後者。
俺はRubyをテキスト処理に使うことが多いから、
組み込みクラスのArray,Hash,String,Regexpくらいが
あれば、大体事足りる。
よく使うのは nkf と getoptlong くらいか。
後は組み込みクラスで大体足りるんだよね。
330java!java!java!:02/03/27 15:45
なんか宣言が無いのが素晴らしいそうですが
宣言ってなんであったら駄目なんですか?
>>330
意見が分かれる
>>330
(´−`).。oO( 自称「VB使い」に対する敷居を低くするため )
宣言は面倒だからお手軽系言語では無いにこしたことはないとは思う。
Rubyにはもともと変数に型は無いので型宣言は不要だし、
$ や @ をつけることでスコープを決められるので基本的には
宣言はいらない。
しかし、宣言を排除することに固執するあまり(?)、ブロックの部分での
ローカル変数のスコープ規則が複雑になっているように思う。かといって
あまり良い代案は思い浮かばないのだが。
334312:02/03/28 05:21
>>321
CGI関係。結局必要なものを全部書き直した。
あとストリームがほしいよ!
335.:02/03/28 10:55
>>334
ruby標準添付の cgi.rb は、よく言われていることだができが悪いね。
あんなものを添付するなって感じだが。
Rubyには興味あるけど、ここの板の信者が馬鹿過ぎて使う気に
ならないんだよな。こんなところで馬鹿やってるくらいなら、
アプリケーションの一つでも書いた方がよっぽどRubyの為に
なるとおもうんだけど。
>>325
rubyunit, pp, rdoc と、RDtool に必要な全ライブラリは
1.8 で入る。RDtool 自体も入るかも。XML パーサはどれを
つけるか dev で議論中。いまのとこ REXML になりそうな
気配が濃厚。そのほか stringio とか iconv とかいろいろ
入るよ (入ったよ)。
338.:02/03/28 16:38
>>336
ネタにマジレスかもしれんが。

ここで馬鹿やってる奴らは信者じゃない。
むしろ逆で Ruby の評判を落とそうとしているだけ。
336 みたいなこといったら奴らのおもうつぼだろ。
つうかそんなことも見抜けないなら 2ch なんかにこないほうがいい。
むしろ首釣って死ね。
>>338
ああ、誉め殺しか。なるほど、済まなかった。
2ch歴はもう2年近くになるけど、関心がそれ程
ないものには騙されてしまうんだな(w
というかアホスレ立てるやつってなんなんだ?
Perl信者?ま、どうでもいいか。とにかく
アンチがこんなに沢山いるとは思わなかったよ。
>むしろ逆で Ruby の評判を落とそうとしているだけ。
そこまでの考えも無く、単に叩かれているから叩いてるだけだろう。
特に、Ruby は最近有名になったから、
出る杭は叩くの精神が働いている。
まあ、隙が多いのは確かやね。
また糞スレが立ったよ...いい加減にしてほしいな。
343336=338:02/03/28 16:50
おれのお気に入りのスレ、一つ貼らせてもらうよ(w
http://choco.2ch.net/test/read.cgi/kao/1014442536/
344325:02/03/28 18:49
>>337
CVSwebをみると、たしかにppとかはrough以下に入っているな。
RDocはどこにあるのか分からなかった。

RDocに必要なライブラリってもしかして、IRBのslex.rbのこと?
>>340
> アンチがこんなに沢山いるとは思わなかったよ。

沢山?馬鹿なことやってる奴はごく少数でしょ。一人でもこれくらいのことはできる。
まあアフォにとり憑かれたと思ってあきらめるしかないね。
346デフォルトの名無しさん:02/03/28 19:34
アフォの正体予想
1.熱狂的Perl信者
2.最近めっきり少なくなったCGI屋
3.言語研究をしていたポス毒
RD, RDoc, RDTool の関係を誰か教えてください。
RDはRubyのスクリプトのソースで

=begin

=end

の2つで囲まれた部分。Rubyはこれをコメントとして扱う。

RDtoolはRDに書かれた文章を
特定の形式に整形するスクリプト
(今は=begin,=endがなくても大丈夫かも)。
形式としてはHTMLが多いけど、他にも
いくつか合ったはず。

RDocはスクリプトのモジュール・クラス・メソッドなどの上に
書かれたコメントを元にドキュメントを生成するプログラム。

こんな感じにスクリプトを書いておくと、コメントといっしょに
メソッドの引数とか、クラスの親クラスやincludeしているモジュールとかを
ドキュメントに記述してくれる。

# Hoge クラスの説明
#
class Hoge < Fuga

include Foo

# Hoge#fooの説明
#
def foo(bar)
end

end

クラスの継承関係を画像にしたり、XMLを吐いたりすることもできる。
>>348
ということは RD と RDoc は直接関係無いんですね。ありがとうございました。
350デフォルトの名無しさん:02/03/28 23:27
Ruby厨
Rubyにとり憑いて、わざと Ruby の評判を落とす言動を繰り返す。
プログラミングに関するスキルはほぼ無いに等しく Ruby も使ったことはない。
わけもなく他の言語を中傷する。
実際の Ruby ユーザからも、他の言語のユーザからもひどく嫌われている。
特技は糞スレを立てる、糞スレをあげる、多言語のスレを荒らす。
350はコピペ厨
352デフォルトの名無しさん:02/03/29 11:44
ソースの中にコメントとしてドキュメントをごちゃごちゃ入れるのは、
読みにくいし書きにくいと思う。
>>352
けど、別々に管理してるとそのうちにドキュメントとソースの同期とるのが面倒くさいよ。
あ、日本語おかしい。
面倒くさくなるよに修正。

ちゅーか
beginとかendってださいな。
ちょっとちがうが if/fi みたいなのがすき。
  end
 end
end
case
esac
foo(;´д`).。oO(bar){
}
fiはfinalの略だと思ってた
358337:02/03/29 16:19
>>344
>>337
[rubyunit], [pp], [rdoc], [rdtool に必要なライブラリ] と
読んでください。rubyunit は test/unit という名前で rough に、
pp は既に 1.7 に入ってます。

rdoc は ruby-talk でまつもとさんが入れることに同意したばかり。
また irb のライブラリも使ってるけど、あれはソースレベルで
コピー・編集して使っているのだと思った。

rdtool に必要なライブラリとは optparse, raccrt, strscan で、
raccrt/strscan はすでに 1.7 に入った。rdtool 自体はまだ話が
出てないけど、遅かれ早かれ入れることになると思う。

ほかに以下のものも入る予定。
・zlib インターフェイス
・Ruby/DL (ruby dynamic linker ... dln インターフェイス)

以下のものは相談中。
・OpenSSL インターフェイス
・nntp

ちなみにライブラリ添付希望はまだ ruby-dev で大募集中です。
dev 入っていないのなら、list で騒いでれば誰かが dev に
提案してくれると思います。
Pascal の begin-end に比べたら、
Ruby の if-end とかのほうが好き。
360344:02/03/29 19:55
>>358

>[rubyunit], [pp], [rdoc], [rdtool に必要なライブラリ] と
>読んでください。rubyunit は test/unit という名前で rough に、
>pp は既に 1.7 に入ってます。
そういう意味ね。しかし、RubyUnitがtest/unitになると、
Test::Unitがどういう扱いになるのか分からなくなる。
結局、標準添付されるのはRubyUnitに決まったの?

おれはTest::Unitが標準添付されるんだと思ってた。
RubyUnitをメインに使っているので、RubyUnitの方が嬉しいけど。

>rdoc は ruby-talk でまつもとさんが入れることに同意したばかり。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/36826
これね。指摘される前から読んでたんだけど、
ソースにRDoc風のコメントを入れるという話だけだと思ってた。

しかし、自分のプログラムを標準添付するよう推薦するつーのは…。

>また irb のライブラリも使ってるけど、あれはソースレベルで
>コピー・編集して使っているのだと思った。
IRBのライブラリで依存しているのはslex.rbだけだったはず。
RDocは便利なんだけど、Rubyスクリプトのパーサーには
irb、rtagsから引き継いだバグがあったりするのが問題。

>rdtool に必要なライブラリとは optparse, raccrt, strscan で、
>raccrt/strscan はすでに 1.7 に入った。rdtool 自体はまだ話が
>出てないけど、遅かれ早かれ入れることになると思う。
おれはRDtoolが入らないなら、raccrt、strscanを入れて欲しくない。
raccならともかくraccrtなんかいれてもほとんど役に立たないし、
strscanはstringioと役割がかぶっている気がする(もちろん違いはあるけど)。

>ちなみにライブラリ添付希望はまだ ruby-dev で大募集中です。
>dev 入っていないのなら、list で騒いでれば誰かが dev に
>提案してくれると思います。
ruby-listでは提案しづらい。
>>360
>おれはRDtoolが入らないなら、raccrt、strscanを入れて欲しくない。

同意ですな。一度入れると抜けないしね。
362デフォルトの名無しさん:02/03/29 23:51
>>354
if/fi 方式は予約語が増えすぎるから却下。
一応現在の本スレなので age。
Rubyistを名乗って荒らしているやつって、絶対にこのスレはあげないのな。
しかし馬鹿一人のためにRubyユーザ全体が窮屈な思いをしているのって
なんとかならんもんかなあ。
>>362
括弧とかインデントなら、予約語増えないよ。

begin とか end って変数名で使いたいと思うんだけど。
python の in もアレだが。
正直、インデントしないとendがどこに掛かるのかワカラン
だったら括弧でも同じだったと思われ
366デフォルトの名無しさん:02/03/30 16:03
>>364
メソッドなら予約語も使えるけど、
分かりにくくなるだけのような気がする。

class Hoge
def begin; 'begin'; end
end

h = Hoge.new
p h.begin

367デフォルトの名無しさん:02/03/30 18:37
ttp://www.rubycolor.org/r/

の2002/03/28のREXMLの記事の紹介をどう思います?
pythonのDOMはpythonのxml_objectifyとRubyのREXMLの比較を
しているので、別にずるくないと思うのですが。
DOM以外の実装がひいきされているという事が言いたいんでしょうか?
368デフォルトの名無しさん:02/03/30 18:45
>> 363
一人かなぁ。本当は30%ぐらいは厨だったりして(w
369デフォルトの名無しさん:02/03/30 23:01
>>368
お前がその1人(ww
371デフォルトの名無しさん:02/03/30 23:14
sage 藁藁
>>370
ユーザ層と関係してるんだろうか。
373デフォルトの名無しさん:02/03/30 23:28
も1つsage 藁藁
荒れ荒れ
>>374
Rubyは好みではないが、眼鏡っ娘はヨい。
377デフォルトの名無しさん:02/04/01 07:25
新刊
http://books.softbank.co.jp/bm_detail.asp?sku=4797314087
たのしいRuby
Rubyではじめる気軽なプログラミング
高橋 征義/後藤 裕蔵 著
>>376
Ruby は好きだが、眼鏡っ娘は嫌いだ。
379nanasi:02/04/01 17:16
>>367
ほのめかすような書き方でRubyを持ち上げてるんでしょうが、それこそ
あまりフェアじゃないと思います。Rubyヲタはきっと勘違いするでしょう。
どっちにしてもHaXMLほどクリアに書けないわけですが。
380デフォルトの名無しさん:02/04/01 22:55
>379
HaXMLって何?
もしかしてHaskell?
381デフォルトの名無しさん :02/04/01 23:38
>>377
「はじめてのC」は名著とされている。
しかし、わかりやすくても初心者向けとなると疑問。
まだ習っていない書式とかが、何の前触れもなく出て来るからだ。
「たのしいRuby」もその轍を踏んでいるような気がする。
「すぐわかるPerl」とか、情報処理試験向けの参考書みたいな
入門書が出ればいいのにな、と思ってしまいます。
>381
たのしい Ruby は本屋で立ち読みしただけですが、初出の用語はちゃんと
説明もあると思いましたが。足りているかどうかは別として。
でももうちょっと薄い本でもよかったんじゃないかと思いました。
383デフォルトの名無しさん:02/04/01 23:56
mailing listでも話題になっていたけど、Windowsユーザーをうまく取りこめていないのが
大きな問題だと思う。
それとプログラミング初心者にもわかるような入門書の欠如。

本もいろいろ出版されてきていますが、内輪受けのような内容のものを何冊も出版しても
あまり意味無いですしね。
>>383
Windowsユーザを取り込むつもりがあるのかどうかはよくわからないね。

本については同意。ていうか ASCII が悪いんでしょ。
385デフォルトの名無しさん:02/04/02 00:35
>>383
うーん。Windowsユーザーを取りこめていないというのは
少し違うと思う。今はPragProgのWindows Installerがあるし、
Ruby Gardenのプラットフォームに関する投票をみると
Windowsユーザーの数はそれなりにあるように思える。

http://www.rubygarden.org/pollBooth.php?op=results&pollID=11
http://www.rubygarden.org/pollBooth.php?op=results&pollID=12

あと、書籍も重要だけど、それよりはWebから自由に読める
チュートリアル的なものの方が必要だと思う。
>>379
これ?

HaXml is a collection of utilities for using Haskell and XML together.
ttp://www.cs.york.ac.uk/fp/HaXml/
>>385
> あと、書籍も重要だけど、それよりはWebから自由に読める
> チュートリアル的なものの方が必要だと思う。

最初はこれを見て覚えました。古いのが欠点か。
http://www.ruby-lang.org/ja/uguide/uguide00.html
チュートリアル
http://www.ruby-lang.org/ja/tutorial/tutorial.html
デスクトップリファレンス(O'REILLY)はいいよ
コンパクトで安い割に内容が入ってる
リファレンスなんだから当たり前だが
>>387
あれだけを読んで、全くの初心者が
Rubyを使えるようになるとは思えません。
あの2つはPerlやCである程度のプログラミングの経験がないと、
読むのは難しいです。
Perl 知らんけど、一度リャマ本読んだほうがいいかなぁと思っている。
# 誤爆じゃないよ。
391nanasi:02/04/02 10:43
>>386

そうです。>>367のリンク先にもあるんですが、Davidの連載で取り上げられて
います。Haskelマンセーではないですが、Rubyのメソッドはなかなかエレガントに
書けないですね。

>>390

Rubyからはじめた人がPerlやってどう思うのか興味あります。
>>391
Perl は覚えなければならないことが多い気がしました。
特異メソッドってどういう時に嬉しいのでしょう?わかりにくくなりませんか?
クラスメソッドは嬉しいのはわかりますけど。
>>393
OOの一般論だからスレ違い。
395デフォルトの名無しさん:02/04/09 11:00
Pyrex の ruby版が欲しい。すごく欲しい。誰か作ってくれないかな。
というか Pyrex がうまらやしい。
Pyrexってこれ?
http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/

気合い入ってるな−。
397デフォルトの名無しさん:02/04/09 23:19
>>396
そうそれ。
Rubyでも、Rubyっぽい構文で簡単に書けて、コンパイルして拡張ライブラリに
できてしまうってのがあればすごく便利だと思う。

Python使えってのは勘弁(w
398デフォルトの名無しさん:02/04/09 23:51
>>396
Python-ml-jpとPyJUGのページに紹介が出てるね。
Rubyの拡張ライブラリはCで書いても難しくないので、
SWIGがあればそれほど需要はないかもしれない。

でも、RubyでRubyの拡張ライブラリを書けるっていうのは
確かに魅力だね。SqueakはSmalltalkで自分自身を
変更できるみたいだけど、ある意味でそういうものに近いのかな?

ドキュメントで言えばPHPのページはええね
各国語(っても他の国のは見てないけど)対応だし
一通りのリファレンスあるし
400デフォルトの名無しさん:02/04/13 00:22
ruby/google?
>>400
ruby-talkを見てきました。
GoogleはSOAPで検索ができる(?)ようになっているんですね。
402デフォルトの名無しさん:02/04/13 03:43
Ruby/SDLのスレってどこかにあったっけ?
>>402
SDLスレ
http://game.2ch.net/test/read.cgi/gamedev/1005469181/
にも少し話が出てますよ。
404デフォルトの名無しさん:02/04/13 07:53
◆毎年約1万人も韓国人が大量帰化しているというのに、在日の数が
ほとんど減っていない。

        1998年   1999年  2000年
在日韓国人  638,828   636,548  635,269 人

これではいつまでも韓国人の日本人汚染が続き、そのうち日本が
日本国籍の韓国人だらけになってしまう。

一方、不法滞在の韓国人は56000人で外国人で最も多い!

◎外国人帰化数
http://www.kyotsu.com/level2/hobby/data/toukei.htm
405402:02/04/13 11:03
>>403
ありがとう、見て来ます。
>>401
これか。
http://www.caliban.org/ruby/
Google の SOAP Web API 用ライブラリ。
407デフォルトの名無しさん:02/04/14 19:34
cygwin環境上でmingw32のgccを使ってビルドするとき、

mingw32を c:\egcs-1.1.2 に展開して、
.bashrcに以下を追加して有効にして、
export PATH=/cygdrive/c/egcs-1.1.2/bin:$PATH
export GCC_EXEC_PREFIX='c:\egcs-1.1.2\lib\gcc-ilb\'

./configure --enable-shared
make
とやると、dir.cで sys/param.h が無いとか言われてしまう。
そもそも c:\egcs-1.1.2 下には param.h は存在しない。

どうやれば mingw32 でビルドできるの??
touch sys/param.h
409407:02/04/14 23:23
やってみたけど dir.c でエラーでまくって
途方に暮れました(´Д`)
410デフォルトの名無しさん:02/04/17 00:22
あの〜、rtagsを実行すると、
TAGSファイルができるときと、永久に処理が終わらないときがあるのは、
なぜですの?
rtags用のスクリプトの書き方でもあるの?
教えてください。
ruby 1.6.7 (2002-03-01) [i386-cygwin]を使ってます。
411Rubyist:02/04/17 00:33
ぷち ぷちって あり殺すのやめろよなぁ
 かわいそうだろぉぉぉー
 たーいせつな 命だからなぁー
412デフォルトの名無しさん:02/04/17 01:19
>>410
rtagsの構文解析は大雑把なので、
時々パースに失敗します。
一番まずいのは

while hoge do

end

みたいにdoをつけることなんですが、
ループに入るのは珍しい気がします。
ループに入るスクリプトのソースはどうなってます?
413デフォルトの名無しさん:02/04/17 22:54
>>412
レスありがとうございます。
自分なりにうまくいくファイルとそうでないファイルを比べたところ、
どうやら単純に[EOF]の前にうっかりスペースがあると
うまくいかないことに気がつきました。

end
 [EOF] ←スペースがあるので駄目
お騒がせしました。


414デフォルトの名無しさん:02/04/25 23:21
ruby の ML の名前はどうよ。
ruby-list, ruby-talkって名前からは区別しにくくないか?
英語圏向けの ruby-dev の需要もあるみたいだしね。
名前を変えるなら、ruby-talk を ruby-list-en に改名して
ruby-list-{ja,en} ruby-dev-{ja,en} に一票。

ruby-house-win32 がほしいなあ。
スペシャルトピックに
「dir の実行」 とか
「どのRubyを使えばいいのですか」とか作って。
>>415
ruby-coreのこと?
ふつーweblogつったら、Radio UserlandとかBloggerのことじゃん。ruby-weblogって何よ。Rubyでつくる日記システムのメーリングリストか?
で、こんどの rubyの本はどうよ?
419名無しさん@Emacs:02/04/27 18:29
あいうえお
420デフォルトの名無しさん:02/04/27 18:30
かきくけこ
>418
都内で売っている本屋教えて。
>>421
ある程度大きい本屋ならあるんじゃないか?
少なくとも渋谷の某店には平積みだった。
>>421
amazon とか cbook24 で買うとか。
>>418
「Rubyアプリケーションプログラミング」
この本はなかなか良いかも。まだ全部はきちんと読んでないけど。
実用Perlプログラミング、だったっけ?あれに通ずるものがあるといったら
言い過ぎか?
上下巻にできるくらいのトピックを盛り込んであるので全体的に駆け足ぎみ。
個人的には拡張ライブラリの作り方にそこそこページ数が割かれていたのが良かった。
readme.ext.ja を取っ掛かりにするのは結構大変だからね。
何しろ ASCII が発行元じゃないのが良い。
>>424
おれも今までの和書の中では一番良いと思った。
でもどうせならデータベースものも(・∀・)ホシイ!
>>425と同じでWeb,GUIで巻を分けて安くしてくれ。
と、こんなとこでリクエストしてもしゃーないが、Perl,Pythonの洋書と
かと比べて技術書として上を目指したら? オーム社とソフトバンク頑張れ!
最近のASCIIはrubyのアプリケーションを256倍使うという趣旨におもわれ。
悪くはないがおれは必要ないし、rubyでプログラム書こうと刺激する内容
じゃないよ。
428デフォルトの名無しさん:02/04/29 13:23
Practical Ruby

gaiacrtn.free.fr/practical-ruby/index.html
>>428
.fr? フランス?そういえばruby-frっていうフランス語メーリングリストも
あるみたいね。
430デフォルトの名無しさん:02/04/30 22:24
IOWAの人がRubyからSmalltalkに乗り換えたらしい。

blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/39319

ここにいくつか理由が書いてあるんだけど、
IOWAの人がRubyからSmalltalkに乗り換えるきっかけになった
Smalltalkの特徴ってRubyで実装することは可能?

開発環境のことは抜きにするとしても
(Ruby本体だけではGUIを作成できないので)

1. あるクラス(Aクラス)に動的に付加されたメソッドの中で新しい
インスタンス変数があったら、すでに生成されているAクラスの
オブジェクトでも新しいインスタンス変数が使用できる。

2. stackをExtensionライブラリ等を書かずにいじることができる
(もっと言えば、Rubyの内部構造(構文木とか)をRubyオブジェクトとしていじくる)
>>430
IOWAって何?
>>430
>Smalltalkの特徴ってRubyで実装することは可能?
こういう風に、なんでもかんでも取りこもうとするのって
なんつーか、厨房的発想だよな。
Ruby/SDLでジョイスティックの十字キーが片側に入らねーぞゴルァ。
片側に入れると -32768 になるはずなんだけど、FIXNUM だっけ? が、
31 ビットだから、MSBが欠けちゃってるとか?
>FIXNUMだっけ? が、31 ビット
そんな仕様だっけ
>>433
今SDLのソースが手元にないんでわからないけどさ、
もし本当にそのセンなら、Ruby/SDLのソースを
INT2FIX → INT2NUM
FIX2INT FIX2LONG → NUM2LONG
に機械的に直せばいけると思うよ。
436433:02/05/01 19:08
>>435
いちゃもんつけてしまったけど確認してみたら、
ちゃんと INT2NUM になってたなぁ。
おれのジョイスティックが逝かれてんのかなぁ。。。
437435:02/05/02 04:23
>>436
いまRuby/SDL v0.7を確認したら、INT2FIXかなり大量にあるよ。
(もっと新しいの出てたっけ?)
rubysdl_event2.c の createKeyEvent( ) が怪しいんじゃない?
>>434
Ruby の実装は FIXNUM オブジェクトを(ほぼ)即値で表現してる。
(ビットシフトで値が取り出せる。)
FIXNUM かそれ以外かを判別するのに 1 bit 使ってるので、
void なポインタのサイズが 32 ビットの処理系では 31 ビットになる。
>>438
最後の1行は変じゃない?
Rubyのオブジェクトは基本的には構造体へのポインタで表されているが、Fixnum
は高速化のため特別扱いしている。ポインタの最下位bitが1だったらFixnumとみなして
右に1bitシフトした値をFixnumとする。よってFixnumは31bitであらわすことができる範囲の
数値ということになる。
最下位bitが0だったらポインタとみなす。
(ポインタが奇数アドレスにalignされることはありえない)
あげるなよ
>Fixnum は高速化
高速化に貢献してるの?
>>439
8バイトアラインメントなら下3ビット使えるね。
昔lisp/schemeスレでやってたけど。
貧乏クサイけど数割のサイズ削減になる。
>>441 そりゃしてるでしょう。即値よりもポインタを経由した構造体を
演算した方が速いなんて有り得る?
>>443
なるほどね。
でもさ、あんな気持ち悪い方法しかないの?
1bit右シフトしたときって符号はどうなるの?
>>442
rubyは4バイトアラインメントかな。Symbolも即値なので下1bitだけじゃ足りない。
Symbolが即値ってどういうこと?
true false nilも即値らしい。
>>446
Symbol#to_iに当たる値をFixnumのように直接もっていると言うことだろ。
>>444
signedにcastして右シフトすれば最上位ビットはコピーされるでしょ。
>>447
なんだ、hash値って意味ですか?
それともただの順序値?
まあこれ以上は自分でソース読むことにするよ。ありがとうね。
Object#id すればどう割り当てられているかわかるよ。

irb(main):001:0> [false, true, nil, 0, 1].each{|i| p i.id}
0
2
4
1
3
451デフォルトの名無しさん:02/05/04 01:42
dRubyでリモートメソッドを呼び出すことが出来るのはわかったのですが,
ローカルにあるオブジェクトを投げてリモートで実行し,結果だけをローカルに返す,
ということはdRubyで出来るのでしょうか?
ここで聞かず、作者に聞け。
>>451
dRuby 本買っとけ。
http://www.amazon.co.jp/exec/obidos/ASIN/4756139612/ilikeruby-22/250-7951949-8758633

リモートメソッドの引数として渡せばいいんじゃないの?
リモートで起動するメソッドを統一してやって。
オブジェクトのコピーを渡すか参照を渡すかではまることがあるので注意。
>>449
Symbolって、:foo みたいのだけど知らないの?
シンボル毎にユニークな番号が振られる。
455デフォルトの名無しさん:02/05/04 20:05
Ruby最高と言っている友人はロッテファンで
ロッテ最強と言っている。
>>455
Ruby最高と言っている漏れは阪神ファンで
阪神最強と言っている。
星野阪神マンセー!!!!!!!!
457デフォルトの名無しさん:02/05/05 05:27
まつもとさんって田舎育ちだよね?
なのになんであんなにコンピュータに詳しいの?
459457:02/05/05 12:34
>>458
なかなか面白かった。
>フリーソフト開発の合間に仕事をする男
という紹介も(w
>>442
Emacs Lispは整数値が 24bit だったっけ?のこり8ビットは何だろう?
461デフォルトの名無しさん:02/05/08 11:39
昔、David Thomas のところに Apple から何か話があったようなことが出てたけど、
MacOS に搭載ですか?
462デフォルトの名無しさん:02/05/08 14:37
HuntがRubyの開発者なの?
463デフォルトの名無しさん:02/05/09 01:29
>>462
誰かそんなこと言った?
開発者の一人ではあるでしょ。作者ではないが。
PragmaticProgrammers は米国での第一人者だし。
というか、Mac OS XにRuby標準搭載のソースきぼんぬ。
どこにあるのやら〜。
ここには載ってるけど。
http://www.apple.com/downloads/macosx/unix_apps_utilities/
Carbon や Cocoa フレームワーク下で利用できるようにするって話なのかな。
467465:02/05/09 03:40
>>466
RubyCocoaとの関係とか、気になりますです。
考え過ぎかな。
468デフォルトの名無しさん:02/05/09 16:29
Rubyまたあたらしいのがでましたね。
先月2冊出たばかりだったのに。
いつまでこの新刊ラッシュは続くのだろう。
>>468
どんな本?書名は?
>>469
http://www.amazon.co.jp/exec/obidos/ASIN/4774114685/
Ruby/GTKプログラミング入門―Rubyで作って学ぶGUIプログラミング
書泉に売ってあった。
>>470
サンクス
昔はRuby本全部集めてたけど、
最近は全然ついていけないよ。
集めんなよ。
なんか意味あんのか?
474マルチポスト:02/05/09 22:27
postgresql(cygwin) + ruby でlocalhost 5432にアクセッスできません。
perlだとできます。


http://www.postgresql.jp/interfaces/ruby/index-ja.html
>>473
472ではないが、、、
本の著者に金を貢ぐことは、
それなりに意味がある行為だと思う。
開発に対する参加の一つの形、だろ?
>>475
但し、るびきちを除く。
私怨カッコ悪い
478デフォルトの名無しさん:02/05/11 21:11
>>487
よくできているものが既にあるんだったら、何も同じようなものを作らなくたって
いいじゃん。
車輪の再発明って言葉知ってる?
>>478
スレ違いの予感
アホですか?
ネタですか。
何もRubyスレに誤爆しなくても。
>>478
Rubyの実装に疑問あり!
http://pc.2ch.net/test/read.cgi/tech/1004873294/
に落としたかったレスでしょ? まあ、そんなにひどい誤爆ってわけじゃないけど。
書き込み前に、ちょっとは確認しよーぜ。
483デフォルトの名無しさん:02/05/11 23:38
この先の487が、同じようなものを作れ!っていうレスだったら問題ない。
484デフォルトの名無しさん:02/05/11 23:39
>車輪の再発明って言葉知ってる?
車輪よりいい物を作るにはどうするか知ってる?
485デフォルトの名無しさん:02/05/12 00:32
なんだか車輪の再発明でスレまでたってるな。
>>485上げるな
この板アラシまくってるぞ ソイツ
まー荒らしってほどでもないな。他の板に比べれば。
>>487
あんたヂョンじゃねーだろーな。
まあ再発明している暇があったらもっと別なことに時間を使えってこった。
cgi.rbが作り直されるみたいだけど今度のはどうよ?
HTML 生成機能は必要ないな。
量にあわせてヒアドキュメントか erb のどちらかで済ませるから。
セッション管理がもう少し使いやすくなると吉かな。
>>491
おなじく。HTML生成機能はいらない。今のも使ったことないし。
互換性のために残すのはいいけどね。
493デフォルトの名無しさん:02/05/13 10:19
slashdotにRuby本の記事が出ている。

Ruby Developer's Guide
http://slashdot.org/books/02/04/30/1349242.shtml?tid=156
494デフォルトの名無しさん:02/05/21 00:17
本スレをageとくか。
495デフォルトの名無しさん:02/05/21 00:35
Programming Ruby のドイツ語版が出るらしい。
>>493
それをいうなら freshmeat.net にも The Ruby Way の記事が出ている。
やはり海外のほうが評価されているのか。
>>496
>やはり海外のほうが評価されているのか。
海外には馬鹿が日本と比較にならないほど沢山いるからかな。
>>497
(・∀・)ソレダ!
>>497
あながち間違いでもないなあ。
/. のスレッドみた感じでは、大体一年くらい前の日本と同じ状況だな。

「Ruby って(・∀・)カナリイイ! から使ってみ。これとかこれが素晴らしい!」
「はぁ?初めて聞くなそんな言語」
「あー日本で流行ってるらしいね。Python 使えばいいんちゃうん?」
「まあ良いのは分かるけどドキュメントが全然足りないよな」
500デフォルトの名無しさん:02/05/21 04:34
n=["a","i","u"]
n.each{|n| print n,"\n"}
としたとき、なんで "i", "u" も表示されるの?
最初に "a" が代入されて、以降はダメな気がするんだけど。
見えない n_org みたいな一時変数が存在してるみたいでキモい。
>>500
どうしてそう思う?
nに"a"が代入されて print n, "\n"
nに"i"が代入されて print n, "\n"
nに"u"が代入されて print n, "\n"
だから、表示されるのは
a
i
u
になるんだけど。
502501:02/05/21 07:12
勘違いしてた。
>>500
Lispのletとかと同じ。
ブロックでの|n|は代入じゃなくて定義。
スコープが違えばトップでのnは壊れないんだよもん。
503501:02/05/21 07:20
def f(x)
 hoge = x
end
hoge = "namahage"

で、f()をいくら呼び出してもトップのhogeの値が変わらないのと同じだね。

f("わるいこはいねぇがぁ"); print a #=> namahage
f("なまはげはいねぇがぁ"); print a #=> namahage
504501:02/05/21 07:24
最後の二行にある「print a」は「print hoge」の間違いだね。
何度も書き込んでごめんね。
>>500
irb(main):001:0> ary = [1, 2, 3]
[1, 2, 3]
irb(main):002:0> ary.each do |ary|
irb(main):003:1* p(ary)
irb(main):004:1> end
1
2
3
[1, 2, 3]
irb(main):005:0> ary
3
506500:02/05/21 14:45
>>502
> Lispのletとかと同じ。
elisp(まともな処理系でなくてスマヌ)は少しだけ知っているのですが、たとえば

(setq ary '(1 2 3))
(let ((ary ary))
(setq ary 'collapsed))

としても元の ary は大丈夫ですよね。

(let ((ary ary))
(nconc ary '(4)))

とするとさすがにダメだけど。
で、元の話に戻ると、
>スコープが違えばトップでのnは壊れないんだよもん。
最後に p n とすると ["a", "i", "u"] じゃなくて "u" になるのが
変な気がするのです。
ruby の {|var| ...} の |var| は let じゃなくて代入だと
どっかで読んだ気はする。
すると、今度は何故 "a" だけじゃなくて "i","u" も出力されるのか(?_?)
>>506
> すると、今度は何故 "a" だけじゃなくて "i","u" も出力されるのか(?_?)

n.each のループ毎に n が評価されるとは限らないのでは。
つまり、nが評価されるのは each ループの直前のみで、
この時点で{|n|には"a" "b" "c"が代入されることが約束されるとか。

と、適当なことを書いてみるテスト。
508デフォルトの名無しさん:02/05/21 17:10
(1) 最初に [1, 2, 3]という配列オブジェクトがありました
(2) そのオブジェクトにaryという名前をつけました
(3) aryという名前のついたオブジェクト、つまり(1)を呼んできて
(4) 「each」と命令しました
(5) eachを処理する途中で1というオブジェクトにaryという名前をつけました
(6) eachを処理する途中で2というオブジェクトにaryという名前をつけました
(7) eachを処理する途中で3というオブジェクトにaryという名前をつけました
(8) eachという処理が終了しました

eachはaryという名前に対して実行されるわけではなくて、
aryという名前の指すオブジェクトに対して実行される
だから、実行中にaryが別のものを指しても関係ない
ちなみに、実行中にオブジェクトの中身が変わる場合は話が別。

非破壊的なメソッドでオブジェクトの状態が変わらないのはRubyもlispも同じ
lispとRubyでは「名前をつけました」の意味が違うということ。
509500:02/05/21 17:27
>>508 おぉ!! すっきりしました。ありがたう。
ブロックを含めた変数のスコープが分かりにくいというのは前から言われてるね。
matz を納得させられるほどの代案が出されていないのでそのままだけど。
後方互換性がなくなるしね。
age
>>511
この糞を何とかしろ
つまりRubyは糞ってことでいいですね?
>>513
なんで?
511にいってるんだろ。
>>513
いいよ
>>509
どこがすっきりするんだよ。
>>508の発言は、命名の意味の違いについての知識に酔っているだけにしか見えんよ。

なんでラムダ式の引数の命名にスコープ外の名前衝突を意識せねばならん?
それを意識させるストレスより、今の仕様の方が良いとする理由・事例は?

ちっともすっきりしないだろ。
517500:02/05/22 12:01
>>516
> どこがすっきりするんだよ。
いや、とりあえず納得する理解はできたということで。
名前とオブジェクトは関係無いし。

> なんでラムダ式の引数の命名にスコープ外の名前衝突を意識せねばならん?
ラムダ式みたいに勘違いしやすいけどラムダ式じゃないんでしょ、たしか。

> それを意識させるストレスより、今の仕様の方が良いとする理由・事例は?
俺も変えて欲しいとは思うけどね。
マンセーとは書いてないでしょ?
つまり「すっきり」はしてないということで。
Ruby の仕様は「すっきり」してないけど、
500 はこの仕様を理解するうえで変にこじつける必要がなく
ちゃんと納得できたので「すっきり」したって事でしょ。
>>516
煽りじゃなく、どういう仕様ならすっきりするか是非教えて欲しい。
521デフォルトの名無しさん:02/05/23 09:22
捨てる。
522516:02/05/23 14:33
>>520
>>500の例でいえば、

n=["a","i","u"]
n.each{|n| print n,"\n"}

n #=> ["a","i","u"]

こうであればすっきりする。
これが良くないという理由と、現状のRubyで実装されている方式の方が
良いという理由が見えんのよ。

つーか、Rubyの別スレッドで似たような話題出てんじゃん…。
>>522
|n|のnをブロック内ローカル変数にする、ってことですか。

別の実例として、optparse.rbのドキュメントに書かれている例の一つに

q.on('-d', '--debug', 'debug message') {|debug|}

というのがあって、これはブロックの外にあるローカル変数へ
値を代入していますが、こういう使い方は良くない、
ということですね?
524516=522じゃないけど:02/05/23 17:02
>>523
それは何をやってるの。直観的によくわかりませんれす。
同じことをやるのに

debug = q.on('-d', '--debug', 'debug message')

というようにonは定義できないの?
このスレッドがその件で一番新しいかな?
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/31198
526501:02/05/23 18:42
また勘違いしてた……。 ごめんなさい。
527デフォルトの名無しさん:02/05/24 00:19
>>526
バーカ
528デフォルトの名無しさん:02/05/24 00:28
>>527
バーカ
529デフォルトの名無しさん:02/05/24 00:32
>>528
バーカ
530デフォルトの名無しさん:02/05/24 00:46
>>522
ルールが複雑になるな。
それを除けば現在よりもその仕様のほうが良いような気がする。
既にそういう方向にすすんでいるようだし。
531デフォルトの名無しさん:02/05/24 01:11
>>530
ハァ?荒しじゃねぇがバカ?
Rubyなめんな。変な事言いふらすな。
変なアルゴリズム提示するな。他言語の信者にツッコミいれられるぞ。
531 はあちこちのスレで楽しそうだなあ。
533デフォルトの名無しさん:02/05/24 01:30
Ruby で書かれたプログラムで勉強になりそうなやつはどこかにありますか?
534デフォルトの名無しさん:02/05/24 01:33
ないよ。
>>534 氏ね。

かと言って
>>533 教えられないが。
536デフォルトの名無しさん:02/05/24 01:47
>>533
ヤフー(海外の方)で検索してみな。
キーワードを増やす時は +key みたいにすればOK。
>>533
あなたがどれくらいのレベルか知らないし、どのくらいの規模のものを要望しているのか
わからないのだが、標準配布の中の sample ディレクトリの下あたりをまずは見て
みるのが良いんじゃない?
>>534
無知。
539523:02/05/24 02:13
>>524
いやまあ、わかりずらいのは理解できます。僕も最初ピンと来なかった。

> q.on('-d', '--debug', 'debug message') {|debug|}

この場合、オプションに -d か --debug が含まれていると
debugにtrueを入れます。

> debug = q.on('-d', '--debug', 'debug message')
> というようにonは定義できないの?

使う側がメソッドを再定義すればなんとかなるでしょう。
ちなみにonメソッドの戻り値はselfです。
540偽善者:02/05/24 02:15
×わかりずらい
○わかりづらい
541やれやれ:02/05/24 02:16
×ちなみにonメソッドの戻り値はselfです。
○ちなみにonメソッドの引数はselfです。
>>541
ヘ?
543523:02/05/24 02:22
>>539 説明になってなかったんで、実際のコードを書きます。

> > q.on('-d', '--debug', 'debug message') {|debug|}
> この場合、オプションに -d か --debug が含まれていると
> debugにtrueを入れます。

require 'optparse'
debug = false
ARGV.options do |q|
 q.on('-d') do |debug| en
end
p(debug)

-dつけないとfalse、-dつけるとtrueが表示されます。
わかりづらかったらスマソ。
>>539
そのオプションに関する処理をブロックの中ですることが期待されている。

q.on("--version", "print versions.") do
puts "shige version 0.0.1"
exit(0)
end

str.sub(pat, rep){|s| } と似たパターンだと思う。
545523:02/05/24 02:30
>>540 指摘感謝。

>>541 あれ、まちがってますか?

>>544
そういう意図があるのはわかります。

ただ>>524さんは「onにブロックがなければ戻り値にオプションの設定値
が帰ってきても良いんじゃないの?」って言っているように読めたんで
あのように書きました。妄想だったらスマソ。
546544:02/05/24 03:03
>>545
>ただ>>524さんは「onにブロックがなければ戻り値にオプションの設定値
>が帰ってきても良いんじゃないの?」って言っているように読めたんで
ああ、なるほど。納得。
ブロック内で宣言された変数の寿命はブロック終了まで、
という自然な考えに反する使い方だと。
テンポラリ変数がブロック内に属するかどうかは考え方次第っぽいが、
確かに、それ以前に宣言されていたときだけ生き残るってのも半端だしな。
547TAREANS:02/05/24 03:19
Rubyっていいよね。慣れれば楽だし。
プラットホームを絞ってくれればヨカッタのに。それだけが残念。
>>547
プラットフォームを限定するとどういいの?
>>548
日本人は限定品や限定モデルが好きだから
プラットホームを限定モデルにすれば
利用客が増え、本数も増やせるんだろ
でも、限定モデルは、ホームとの隙間が
大きく空いてる所があるから、要注意な
550524:02/05/24 09:26
543-544で意味わかりました。
意味はわかったけど、そういうことができるから良いとは言い難いなあ。
激しく解り辛いことは確かだし、
q.on('-d') {|v| debug = v} でいいじゃんか。
>>551
q.to_sで--helpの時の表記が取得出来て便利だろーが。
553デフォルトの名無しさん:02/05/25 12:29
書籍 Ruby de CGI 発売age
>>551
同意。

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/14016

みたいに大域変数に代入するのは本当に止めて欲しい。
555523:02/05/25 20:57
>>551
実際の話「わかりづらい」とか>>549さんの「自然な考え」というのが
ピンと来ないのは多分僕だけですかね。Rubyがそういう仕様なら
それなりに使おうとしてしまうので、気にならないのかも。

Ruby 2.0とかでこの辺が大きく変化したりしないかな。
メジャーバージョンが上がれば割り切って作ってもらえそうな
気がしますが。
556523:02/05/25 21:00
>>555
書いてから色々気付く。うつ。

> q.on('-d') {|v| debug = v} でいいじゃんか。

初見で「vはブロック内ローカル変数なんだな」と想像できるのは、
過去にそういう言語を経験したことがある人のみではないか、
ということです。逆に最初にRubyを憶えてから他の言語を使う際には
逆の問題が起きたりしないのかな、とも思いますが、
そんなことない?
557524:02/05/25 23:40
v0 = "hoge"
p0 = proc {|v0| v0 * 2}
p0.call (7)
p v0 # => 7

p1 = proc {|v1| v1 * 2}
v1 = "hoge"
p1.call (7)
p v1 # => "hoge"

# proc の位置の違いがポイントです。

最近のレス見て試してみたらこうなったんだけど
正直気持ち悪いと思ったよ。
これは仕様なの?仕様だとしてこうした理由は

1. 実装が楽なのでやむなく選択
2. 過去バージョンとの互換性のため
3. あえてこの仕様

のうちどれなのかな。
>>557
1+2 かと。
matz もこうならない仕様への需要があることは認識しているみたいだし。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/31201
2.0 の仕様を議論するときに強く押せば標準採用もありえるカナ?
559524:02/05/26 00:15
>>558
3だったらヤだなと思ってたので1+2ってことで安心しますた。
560デフォルトの名無しさん:02/05/26 04:13
Ruby に Java でいうところの JDBC API みたいなクラスライブラリってありますか。
おすすめのものがあれば教えてください。
>>560
Perl でいうところの DBI はある。
http://www.ruby-lang.org/en/raa-list.rhtml?name=Ruby%2FDBI
562デフォルトの名無しさん:02/05/26 11:47
>>558

1は違う気がする。
563デフォルトの名無しさん:02/05/26 19:35
>>522
print n の n が、引数で使われているか否かでブロックローカルかそうでないか
変化するのね。
564522:02/05/27 15:38
>>563
そういうこと。
ブロックの引数名は、そのブロック内での役割を示す簡潔な名前を付けるべきで、
外スコープのオブジェクト名とぶつかっているかどうかなんて、考えたくない。
例えば、hash.each {|key,value| ...}とスラスラ書くのに、
keyやvalueという名前が外側にあるかどうか気にしなくちゃいけないなんて鬱すぎ。
もし本当に外側のkeyやvalueにブロック内で代入したい場合には、メソッドの肥
大化を疑うつもり。
>>556
なんにせよ、[必要なら]その言語の仕様は覚えなくちゃ。

例文を「a = b = '1'」としよう。

初見で「aとbにオブジェクト'1'への参照を与える」と想像できるのは、
過去にそういう言語を経験したことがある人のみではないか、
ということです。

…というのと同じではないのかな?
566523:02/05/27 22:12
>>565
あれは>>551さんがブロック内ローカル変数を前提にして

> q.on('-d') {|v| debug = v} でいいじゃんか。

と書いたものと思って>>556と書いたわけですが、これは私の妄想が
過ぎました。ごめんなさい。

なんか混乱してきました。頭冷やしに逝ってきます。
>>564
最後の2行は言い過ぎではないのかなあ。クロージャの意味が無くなる。
>565
言いたいことは分かるけど・・・同じではないよ。
>557の例、procをlambdaに置き換えるとさらに気持ち悪くなる。

rubyの、ブロックの手続きオブジェクト化にlambdaなんて
lispを思わせる別名をつけたのであれば、lispから類推できる
挙動であって欲しいって思うのは、かなり自然な要求だと思う。

…べつにオレはlispが好きってワケじゃないが。
569デフォルトの名無しさん:02/05/28 00:08
なんでみんなRubyを貶すのかなー?
もしかして劣等感?僻んでる?
日本発の言語で世界に評価されているのはRubyしか存在しないんだから
みんなでRubyを盛り上げてC++やDelphiなんて、プププのプーってぐらいに
しなきゃ。
実際今まで10年ぐらいプログラミングしてきた俺だけど、Rubyより優れた
言語に出会った事がないよ。
やっぱり新しい言語は優れているんだろうね。

コピペして貰えれば幸いです。
>>569
RubyとC++/Delphiでは畑が違うよーな。
たとえばC++/Delphiの仕事に、あえてRubyをもってくるのは違う気がする。
Perlの仕事にRubyを使ってみる、とかならわかるけど。
>>568
rubyの次のメジャーバージョンアップでは、ブロックの引数はブロックローカルに
もできるようになるって話は出てたよね?
>>570
マジレス?まともにとりあうなよ。
>>572
え、マジレス(というほどのものでもないけど)しちゃだめでしたか。失礼。
>>564
メソッドが肥大化していなければ、ブロック内の変数とその外側の変数名の
衝突なんてしないというか、すぐ気がつくと思われ。
575デフォルトの名無しさん:02/05/28 23:46
なんか、ブロック引数のスコープがブロックローカルでもそうでなくても、
n.each{|n|...}
という書き方はよくないと思うなあ。他人が見るとはまりやすいし。
C言語で
n = n++;
と書くのと似たようなものというか(w
どういう書き方ならよい?
>>576
別々の変数名をつけろってことだろ
>>568
> >557の例、procをlambdaに置き換えるとさらに気持ち悪くなる。
おぉ!! きもちわる〜いですね。
OO だから Ruby流をとかいいたいのか知れんが、
lambda を名乗る以上はどうにかしてもらいたいもんだ。
>>575
全然違うでしょ。これまでの流れを理解しているとは思えない。
他人が見るとはまりやすいってのは、Rubyしか触れてない人限定じゃないの?
lambda式っぽい構文があって、その引数の名前によっては外側のスコープの同名
変数を破壊するなんていう仕様はまず想像できないと思うんだが。
試しに、周りのプログラマに、以下のサンプルを見せて、

n = ["a","i","u"]
n.each{|n| puts n}

「この結果、nは何でしょう?」と聞いてみてほしい。
n.eachと書くから話しの流れと関係ないことに目が
いっちゃうんじゃないの?

n = "キタ━━━━━━(・∀・)━━━━━━ !!!!!"
["a","i","u"].each{|n| puts n}

「この結果、nは何でしょう?」と聞いてみてほしい。
>>568
> rubyの次のメジャーバージョンアップでは、ブロックの引数はブロックローカルに
> もできるようになるって話は出てたよね?
 ^^
この積み重ねがperlなんだと思う私は馬鹿なんだろうか。

>>580が良い事言った。
582581:02/05/29 16:10
> >>568
-> >>571
583デフォルトの名無しさん:02/05/29 21:02
>>579
正直 ruby を使う気なくしました。こんな仕様は非常識ですよ。
所詮学の無い作者のオナニー言語です。
気に入らないならさっさと他の言語へ行くか、作るかしたほうがいいよ。
>>583
ブロック引数のスコープの仕様だけ変わったって使う気無いくせに、いちいち
ageてまで書くな。
>>580
そう書くと現在の仕様でも納得できる気がちょっとしてきた。
>>586
では問題無しということで。
>>586,587 proc (a.k.a lambda) のほうは?
>>588
lambda って名前は廃止してほしいよね。
漏れはラムダ式と呼ぶには違和感ありありなので proc しか使わない。
>>589
要は名前が悪いってことでしょ。 lisp とかの lambda を知っている人にとっては、
違和感ありありだと。
lisp知らん人にとってはどうでも良いことかも。
スレの流れでは、ブロックの引数がローカルじゃないってことになっているけど、
実は、ブロック内で使われる変数すべて、ローカルではないんだな…

a = 3
b = 8
pr = proc{a = 'ha?'; b = 'fuun'}
pr.call

ってやるとa='ha?' b='fuun'になっちまう。
なんか、手続きオブジェクトって呼ぶにしても中途半端な仕様な気がする。
eval と binding を加えればさらに混乱必至。
>>591
http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Proc

ようは見た目だけがブロックということ?
>>591
def f()
 proc{a = 'ha?'; b = 'fuun'}
end
a = 3
b = 8
pr = f()
pr.call
……とすると、a=3 b=8のまま。
def f(proc)
proc
end
a = 3
b = 8
pr = f(proc{a = 'ha?'; b = 'fuun'})
pr.call
……とすると、a='ha?' b='fuun'になる。
これはおかしい? それとも自然?
595()後方参照:02/05/30 17:57
PERL-->RUBYに乗り換え進行中の初心者です。
ひとつつまずいてしまって、FAQかと探してたんですが
見当たらなかったので質問させてください。

Perlではこうすると;
$_="you love girls";
s/(\S+) (\S+) (\S+)/\3 don't \2 \1/;
print;
--> 出力:"girls don't love you"とできますけど、
Rubyではどうすればいいんでしょうか?

str="you love girls"
str.gsub!(/(\S+) (\S+) (\S+)/, "$3 don't $2 $1")
print str
これだと出力が "$3 don't $2 $1"になっちゃう。

なにか簡単な事を見逃しているんだろうけど、わからない、、、
>>595
str.gsub!(/(\S+) (\S+) (\S+)/, '\3 don\'t \2 \1')

無駄にメソッドチェーンしたいときは
str.split.insert(2, "don't").join(" ").display
597595:02/05/30 18:53
あ、できた! ありがとうございました >>596
うーん、シングルクォート=式展開なし /
ダブルクォート=式展開あり
とばっかり思ってた。
(ていうかリファレンスマニュアルにはそう書いて、、、)
(ていうかシングルクォートも確か試したと思ったのになぁ)
後方参照もリファレンスには\1, \2でなく $1, $2とありましたが、
当方 Windows環境だから違ったのだろうか、、、、

ともあれ、これでPERLからの移行を続けられます。
ありがとうございました。

p.s. 「str.split.insert(2, "don't").join(" ").display」
  こっちはインタープリタによれば undefined method `insert' for
  ["you", "love", "girls"]:Array (NameError) との事で、
  できませんでした。

>>591
クロージャの意味分かってる?
>591
うーんとさ、それは他の言語でも閉包ってのはそういうものだから…
lispなんかでも
(setq a 8)
(setq prc (lambda () (setq a 3)))
(apply prc ())
=>3

a
=>3

になるし。文句はあまりでないと思うが。
むしろRubyにはletがないといった方がいいんじゃないか?
ruby-listで提案して玉砕された形跡があるが。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/34901
Ruby初心者にやさしい本は何がありますか?
スクリプト言語は初めてです。
>>591はoccur freeな変数が関数オブジェクトでは
認められるということを
問題にしているのではなかろうか。
察するに。
無知なくせにでしゃばって恥をかいた悲惨な >>591 がいるスレはここですか?
605デフォルトの名無しさん:02/06/01 10:15
Web 開発に Ruby 使おうということを上の人に説得したいんだけど、
提案に役に立つまとまった資料、文章とかないかな。ポジショニング
マップとかが書いてあって説得力のあるものが希望。
606デフォルトの名無しさん:02/06/01 11:32
>>583

あなたは幸せものです。
世の中にはもっと酷い言語を使わされている人が沢山いるのですよ・・・?
>>605
あればもっと普及してます。
無知なくせにでしゃばって恥をかいた悲惨な >>591 がいるスレはここですか?
609デフォルトの名無しさん:02/06/01 13:10
この板を紹介する。>>605
PerlとRubyのいいところだけを統合させた言語きぼんぬ
アホな機能満載のクソ言語スレはここですか。
>>610
ちょっとまった、rubyのいいとこってどこよ?
613マジレス遺体:02/06/01 16:17
>>611
アホな機能とは具体的には何ですか?
>>610
それが ruby のはずなんだが。
>>611
いいえ。ここは無知なくせにでしゃばって恥をかいた悲惨な >>591がいるスレです。
616112:02/06/01 17:57
なんだ?どこかで>>591にいぢめられたのか?>>615
>>616
どうでもいいけど、あんたが112のはずはないんだが。。。
>>611
作者やコミュニティがアホだから、他の言語の良いところを持ってきたつもりが、
いつのまにかrubyアホ機能その1に成り下がってるんだよね。
>>618
なんだ?どこかでrubyコミュニティにいぢめられたのか?>>618
620 :02/06/02 00:31
質問ですが、下記の本ではどちらがおすすめでしょうか?

『Rubyアプリケーションプログラミング』
http://www.amazon.co.jp/exec/obidos/ASIN/4274064611/
『プログラミングRuby―達人プログラマーガイド』
http://www.amazon.co.jp/exec/obidos/ASIN/4894714531/
621 :02/06/02 01:25
>>620
http://www.linux.or.jp/bookreview/OOSP-Ruby.html
『オブジェクト指向スクリプト言語 Ruby 』がいいよ。4000円。
>>620
はじめて読むならプログラミングRubyじゃないか。次にRubyアプリケーションプログラミング。
両方読むのがおすすめ。
623620:02/06/02 08:44
とりあえず『プログラミングRuby』を買ってこようと思います。
Rubyをはじようと思った動機は、日本語に対応した正規表現を使いたかったから
という単純なものだったのですが、Perl以上にスイスアーミーナイフな感じで、
期待が持てます。(本家のホームページは (´・ω・`)ショボーン ですが・・・)
>>623
がんばれよ。
625デフォルトの名無しさん:02/06/02 20:24
>>601
オーム社の Ruby プログラミング入門か、最近出たたのしいRuby(だったっけ?)
くらいかな。
スクリプト言語がはじめてでも、他の言語である程度の経験があれば、>>620
でているプログラミングRubyでも良いと思う。
Ruby本を2日以上、家に置いておくと、家族に不幸がやってくるぞ。
早く、捨てれ。
>>626
お前、不幸な奴だろ。同情するべ。
>>625
>オーム社の Ruby プログラミング入門か、最近出たたのしいRuby(だったっけ?)

この2冊はけっこう性格違うよ。
原さんのは「入門」な割には詳細に書いてあり、高度な話題も
チラホラある。あまり経験が無いと消化不良になるかも。良書ではあると思う。
導入として「たのしいRuby」を読む事は決して無駄にはならないと思うよ。
入門とか、たのしい、より、
拡張ライブラリや、組み込みRubyの本でないかな。
rubyを組み込んだ実用的なものというとmod_rubyくらい?
そういうことではなくて? >>629
631628:02/06/03 13:18
というか、俺は情報系の知識が無い初心者なんだけど、
以前「入門」を読んだ時は、読むには読んだけど
いまいち理解できてなかった。
で、全然 Ruby 使ってないので久しぶりに勉強しようと
今回「たのしい」を読んでみているわけだけど、
結構話題を絞り込んであるので、ダレずに進めて有難い。

elisp だけは普段から触っているので今回イテレータは
すんなり理解できた。yield とか block とか、なんだ、
funcall や lambda じゃない。each は mapc(ar)
してるだけだし。

というわけで、lisp に似てて嬉しいんだけど
上のほうで話題になってる block と scope の関係や
lambda の仮引数(じゃなかった!!)とかは残念でならない。
Class#each が定義されてるとき、Class#each_with_index が
どのように定義されるか、Ruby (not C) で書くとどうなりますか?
634デフォルトの名無しさん:02/06/03 22:05
>>630
組み込んだ物じゃなくて、拡張ライブラリを書き方や、
アプリへの組み込み方法を「たのしい」レベルで
解説した本が欲しいんだけどなあ。

まぁ README.EXT.ja とか読みながら試行錯誤で
やれば出来るのだろうけど、学生じゃないから、
試行錯誤している暇はない。とか言っちゃだめか。
>>634
ruby-devでブロック引数のローカル化の話が出てますね。
>>635
ああ、癖で書いてしまいました。
>>635>>634さんへのレスではありません。
まぎらわしくてごめんなさい。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/17298

というような記述の仕方はどうなの?
正直、俺はあまり好きではない。

それにこういう記述形式にすると、
今まで以上にparserが複雑になりそう。
昔の動作を {<arg> ...} にしてくれたらいいのにぃ。
ま、互換性の点から無理だが。
# <arg> はダサいな。[arg] というのはダメ?
# 複数あれば {[arg1, arg2] ...} となるけど。
256本の racc のやつは難しいですか?
C は知りません。Ruby は原先生のと「たのしい」だけ読んだ事あります。
他の言語も殆ど知らないと同じです。

次に何を読もうか迷ってるんですよね。
プログラミングRuby は、そのうち買うつもりだけど、
たてつづけに解説書だけ読んでても面白くないし、実践的な事しないと。
>>638
それはArrayの即値と見なされるのでだめ。
>>639
無道編はコンパイラコンパイラの入門として面白いと思う。
ruby-talkにannounceがあったけど、ILEってどう?

http://virtualschool.edu:8083/tut/HomePage

HTTPサーバーを内蔵しているみたいだし、面白そうなんだけど。
どうしても言語処理系を作りたいのでなければ、
『Rubyアプリケーションプログラミング』 のほうにしといた方がよいとおもう。 >>639
>>638
グローバル変数で挙動を変えるようにするとか。
なんか perlっぽいけど。
いや、それはさすがに論外では。
というかパーサの問題だからグローバル変数じゃ話にならない。
>>645
じゃあ起動時オプション --traditional で古い挙動になる、とか。
いや、本気じゃないけど。
オプションで変わるにしては影響が大きすぎるというか、
どこまでどういう影響が及ぶか非常に分かりづらいから、
それはたぶん採用されないと思う。
>>637
ポリシーも無く、行き当たりばったりで作ってるから
こんなことになるんだな。
「ブロック引数は多重代入のセマンティクス」というポリシーはあるんだよ。
そのポリシーに反する要求を満たそうとするとどうしても無理が出て来る。
後付けポリシーの予感がするな
本気のポリシーなら押し通せよ
むしろ今問題にされてるのは、ローカル変数スコープのポリシーか。
むしろ問題はるびきちの傍若無人ぶりだ
最近見ないが。
654デフォルトの名無しさん:02/06/07 20:53
正直、るびきちが羨ましい。
るびきちの話題は撲滅スレでおながいします。
無知なくせにでしゃばって恥をかいた悲惨な >>650 がいるスレはここですか?
>>651
なんでこんな重要なことを今まで放っておいたんだろうね。
>>637-638
いっそのことブロックに名前付けちゃうのどう?
schemeだとletに対してfluid-letというのがあるけど、
こういう目で確認しづらいものは構文拡張より名前で区別した
ほうがわかりやすいと思う。

foo let:{ ... }

とかブロックの前に明示的に名前(ラベル)つけれる様にして、
省略すると以前の形式。

{<,,>...}みたいな変な構文導入するよりマシな気がする。
659デフォルトの名無しさん:02/06/08 09:33
>>658

素晴らしい意見過ぎてたまらん。(俺はもう、Ruby の syntax はこれ以上
進化しなくても、構わないとは思う。)
660658:02/06/08 13:12
>>659
こういうのってまっさきに思いつきそうな気がするんだけど、
外側に名前置くってのはなんか問題あるのかな?

>>658の思いつき自体はこの人の最初の方の意見に近い。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/17330
けどあんまり注目されてないみたい。(というか作者が理解せず終わった?)
枝止まってるみたいだし。
正直、この議論は変な方向へ行ってる気がするなあ。
ともかく、{<a,b,c>...}これはやめてほしい。

作者はブロックの中で解決することに何故かこだわってる感じ。
なんでだろ。
今の規則をデフォルトにしてしまいたくないのかも。ここで、
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/17352
「失敗であった」とか言ってるし。
>>658
ごめん。ブロックに名前付けてどう使うのか教えてください。
ちなみに scheme は知りません。
名前を付けるんじゃなくて、単に{}とlet:{}を区別するためだけにラベル
付ければいいというだけの話だと思う。
ブロックに名前が付くのではなくて、ブロックの構文にラベルを導入してブ
ロックの種類を区別するだけ。
ブロックの外側にラベルをつける方式って{ }なブロックならいいけど
do 〜 end なブロックで書こうとすると見づらくならないか?
>>662
ますますわからんです。
ラベルをつけて、それを何に使うのか。
ラベルがついているブロックとついてないブロックと何が違うのか。
ブロック引数とブロック内変数のスコープの問題とどう関係するのか?
あっほ〜
rubyって、statement ... endの形式で書くのかと思えば、
{...}という表記もある。
一貫性のないむちゃくちゃな言語に見える。
作者が日本人なので一貫性の無いのはある意味当然といえます
>>666
メソッドチェーンする場合、{} の方が短いとか、
ブロックのスコープと他のを区別しやすいとか。
後付けの理由だけども。

[1,2,3,4].collect{|i| i*2 }.select{|i| i < 5 }
[1,2,3,4].collect do |i| i*2 end.select do |i| i < 5 end
>>666
本質的なことじゃないんだけど、結局俺もそれが嫌。
「今度から、現状の{|a,b| }の書式でブロックローカルが実現されるようになりました」、で いいじゃん。

{<a,b> }だとかlet:{}の導入って、結局は「互換性を保つため」という前提だよね。
本当にそのまま互換性を取れると思うの?
過去を気にして醜くなるより、諦めた方が幸せなこともあると思うぞ。

問題になっているブロック内ローカル変数の名前衝突は、知らない人がほとんど。
ということは、(運良く)名前は衝突していないわけで、互換性は問題なし。

{|a|}や{|$a|}とかいうのは、ブロック内で何もしていないことを検知して「旧書式臭い」ことを通知してもらえれば結構。

これで9割がた問題ないだろ。
残りの1割は、バージョンアップによって仕様が変わったんだから、ソース変えろや!そのまま動くと思うなんざ甘いんじゃゴルァ!ということで。
>>670
そうですね。
|この中で|すでに宣言された変数使った方が新しい変数作らなくていいから
都合のいいこともある。
>>670
この人も同じ意見らしい。

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/17365

結局、ブロックローカルを期待して書いてる傾向が強いみたいなので、変に互換性を気にする必要はないのかもね。
674670:02/06/10 12:28
>>672
新しい変数作らなくていい == 都合がいい、の?
新しい変数作らなくていい == 手短に記述できる、なら解るけど、

>|この中で|すでに宣言された変数使った方が

は、スレ上流で言われているように、「解りにくい」。
ブロック引数がローカルスコープになって外と同じ変数名を使ったほうが
わかりにくいプログラムになる気がする。
676デフォルトの名無しさん:02/06/11 00:49
代入(=)が or/and よりも結合の優先度が高いというのに気付かなくてはまったのでメモ

例: x = true and false
>>675
外の環境を破壊しない事が保証されている方が安全でそ。
そりゃPerlからの仕様だ。
もひとつ、or/andは同じ優先度だってのも覚えとくべし。これはshといっしょ。
>>677
同じ名前で別のものを指すのは混乱の元じゃないか?
680676:02/06/11 00:54
>>678
スマソ
perlってあんまりいじってないんで知らなかった。

perlより先にrubyをいじったらperlをやるモチベーションがイマイチなくなってしまったので
>>679
用途が同じで使われる場所が全く違うものにわざわざ別の名前を付けなければいけない方が
混乱の元じゃないか?
だって同一メソッド内での話だろ。
「使われる場所が全く違う」ってことはありえん。
同一メソッド内だろうがスコープが違うってことでしょ。
「全く」はちと大袈裟な気がしたけどね。
メソッド内でのメソッド定義とかも、引数の名前衝突を気にしたいってこと?
>670

禿道

 Ruby はあくまでもシンプルで自然を目指すべきだと思う。

 1.4 から 1.6 の時に Hash の要素に nil を認めるようにした時の方が
影響が大きかったんじゃないかな。
>680

 わざわざ後付で Perl をやる必要は無いよ。

 and/or の優先順位は Perl 確かに準拠だけど、
はじめから Ruby の仕様だと思って覚えても
問題ないでしょ。
本屋でRubyアプリケーションって書籍がオーラパワーを出していたので買ってきた。
これ全部理解出来たら、物凄いスキル上がりそうな気がした。
一年ぐらい掛けて読むか。
いきなりローカル扱いされたんじゃ、わずかばかりの効率を追求していた人が可哀想?

require "benchmark"
include Benchmark

n = 4000000
j = 0
bm do |x|
x.report("A: "){ n.times do |i| end }
x.report("B: "){ n.times do |j| end }
end
688デフォルトの名無しさん:02/06/12 09:51
tyj
>687

 まあ、今時 Ruby の様な言語で、わずかばかりの効率を追及するより
script の分かりやすさ(==メンテナンス性)の方が大事だと思うので、
ローカル化に一票!!
690678:02/06/12 11:06
>>685
同意。678の前半はただの余計なお世話だから気にしないように。
既存のプログラム掻き集めてきて、
どのくらいが影響受けるか調査すれば
ローカル化への道も開けるか?
とりあえずruby-dev 講読してない人のためにも
ruby-list や ruby-talk で聞いてみたほうがいいと思うが。
是非変更してほしいな。
変数を宣言する仕様だったら問題なかったのに。typoもチェックしやすいし。
var i
a.each_with_index do |var e, var i| end
>>691

>>673 のリンク先にあるように
rubyに標準添付されているライブラリに関しては問題ないみたい。
後は

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/17366

で言われているようにどの位の数のサンプルを集めて調査するかだね。

>>692
ruby-talkでも議論が始まってますよ。
Man, it took me hours to write this mail. Why you guys don't read Japanese?
皆は、ブロック内では「||」にある変数しか使わないの?
仕様を変更するなら、ブロック内の変数の扱い全般を変更しないと片手落ち……って、
こんな所に書いても意味が無いか。
>>696
おれもそんな気がしていた。
となると、||の中のは仮引数として、それ以外についても
let ブロックを導入する必要があるんじゃないのかなぁ、と。
>>696
片手落ちってこたぁないでしょ。
あったら使うと思うけど、ソースが汚くなるからあえて採用してない、
というポリシーも解る、という程度。
作り直せ!
うんこ
>696

 ブロック内で代入した物はすべて、ブロック・ローカルでいいんじゃない?
>>701
じゃあ、ブロックローカルな変数から外に還元するには
返り値のみしか方法がなくなってしまうじゃない?
これはちょっと不便すぎな気が。
proc はそれでいいとも思うけど。
いいかげん変数宣言しちまえよ。
perlのuse strict;みたいなの導入しちまえよ。
キモイんだよ。
>>696

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/17352 より

* そこで、ブロックパラメータについては

<x, y>

という宣言であれば、外側に同名のローカル変数があってもそ
のブロックローカルになるようにしたい。記法は変化するかも。
重複していたら警告するかどうかは未定。

* ブロック内ローカル変数については、ブロックパラメータの指
定を借りて

<x, y; a, b>

という「宣言」によって指定するか(宣言型)、あるいは、特別
の代入演算子(たとえば「:=」)によってその代入された変数は
以後ブロックローカルになるか、のような方法で実現したい。
重複していたら警告するかどうかは未定。

* 上記ふたつの機能が実現すれば、現在の「不自然かつ使いにく
い」ブロック内ローカル変数の役割は終わる。よって、将来の
バージョンでは、メソッドのローカル変数、明示的に指定され
るブロック内ローカル変数のふたつだけになる(ようにしたい)。
でも、互換性がなあ。

ということらしいです。
互換性を捨てる場合(||をブロックパラメータにする)は
ブロックローカルの変数の扱いで問題が残りますね。
>>704
<>自体がキモイんだよ!
こんなの採用されたら、もうRubyいらんわ。
>>705
ま、||の意味を現行のままにできたらと
松本さんが思うのも当然でしょう。
困るのは(一部だけど)ユーザなんだから。
でも俺も <> は嫌だな。絶対に || の意味を変えてほしい。
707701:02/06/13 08:00
>702
 その方が明示的でいいと思うんだけどなぁ・・・

 そんなに内と外を一緒にしたいならグローバル変数でも
使えばいいんじゃない。

>>707
>>704 の <x, y; a, b> (ちゅうか、|x, y; a, b|ね)
じゃだめなの? 俺はこれでいいかなと思ったんだけど。

# もしかして Haskeller?
>706
 まあ、幸い(嫌みではない) Ruby は未だユーザも
少なくて、そのユーザも状況を理解している人が
多いだろうから、今から過去に縛られて変な構文を
持ち込むより、シンプルで自然を貫いた方がいいと思う。
710701,707,709:02/06/13 08:34
>708
 確かに |x, y; a, b| も悪くないと思うけど、とってつけたような
感じは否めないと思うんだよね。
>>710
表記としてはとってつけた感はあるかも。
でも Ruby では気楽にプログラミングが出来る事が重要でもあるのだから
やたら面倒な記述が必要というのも困りそうだね。
別のスッキリした表記法があればいいんだけど。

で、return value しか使えないとなると、next とか redo みたいな
のが使いにくくなるんじゃないかなぁ。

# プログラミングのスキルは初心者な奴が書いてるので、あまり本気で
# 相手にしなくていいです。
712710:02/06/13 10:54
>711
 とってつけたと書いたのは、見た目の問題だけじゃなくて、
他ではいわゆる変数宣言というのを廃しているのに、ブロック
ローカルだけ宣言ぽいことをするのも、とってつけた感じが
するからなんだけど。

 で、簡潔な記述が要求される局面と云うのは、小規模な script
だろうから、グローバル変数を使っても良いだろうし、大規模な
script なら、多少記述が面倒でもスコープの管理が厳格な方が
良いんじゃないかと思う。

 あと、 next とか redo とかは確かに困りそうだけど、いっそこと
next value とか redo value と云うふうに拡張しちゃったらどうかね?

#なんか、自分で書いててネタだかマジだか分からなくなって来た(^^;
713702:02/06/13 11:06
>>712
自分が慣れてるのは elisp ですが、これは
defvar しなくてもいきなり setq で変数に代入できます。
let で局所変数を利用する事もできます。
特に不自然だと思った事は無いですよ。少なくとも自分は。

next value とかの利用法がどんなのか想像できないのですが、
return value しか利用できないとなると、
a, b, c, ... = hoge.each{ ... }
としたときの左辺が凄い事になりそうです。

# うーん、純粋な関数型言語使ってる人の意見を聞いてみたくもある。
## 初心者な俺がスレを占拠していいのだろうか。そろそろ去らなきゃ。
>>712
next value とか redo value が意味があるかどうか疑問だが、
break value は1.7では使える。
715712:02/06/13 12:30
>713

 まあ、 |x, y; a, b| という記法が絶対駄目とは思って
ないんだけど、自分としてはとってつけたような感じが
好みじゃないんで、他の方法を適当に考察してるだけ
なんだけど・・・

 next value ってのは >711 で next が使いにくいと
書いてたのに対する解のつもり何だけど、勘違いして
るかも?

 左辺がすごいことになりそうなら、 Array や Hash を
使った方が良いんじゃないかな?

#どうも、趣味の問題になって来ているので、そろそろ
#止めた方がよさそうですね(^^)

ああ、ひょっとしてこういうこと?

f = proc {|x, y|
p [x, y]
redo x+1, y+1
}

proc.call(0, 0)
[0, 0]
[1, 1]
[2, 2]
...

でもnextはそのブロックの終端にとぶ、redoはブロックを最初から同じ引数で
再開するというものだから、これじゃへんだよな。

>>711はたぶん、ブロックの繰り返し間で保存される変数も必要だということ
をいいたかったんじゃないだろうか。だとすると、valueというのはちょっと
違うという気がする。
この、仮引数と同名の変数がシャドウ化されないのは、
元々何の為だったんだろう
元々のきっかけが知りたいですね
しかもよりにもよって、それにlambdaとか付けてみたり・・・
明らかにλでは無いんだから、
これを付けたのは混乱の元だと思う。
しかも、procといってよいかも分からない。
routineじゃ無いですかね。或は、subprogとか。
718702 とか 711 とか:02/06/13 13:02
>>716
#うーん、ちょっと話題がこんがらがってるようですが

自分が next や redo の場合が云々と書いたのは
hoge.each{|x, y| ...}
の case を考えてでした。

proc の場合と each のような場合を一緒くたに話題にしてすみません。

# あと、proc で redo とかできましたっけ? ruby -v #=> 1.6.5 の irb では
# エラーになるのですが。
719712:02/06/13 13:21
>716

 正直なところ redo については自分自身用途には
疑問を感じつつ、流れで書いてしまったのですが、
next の場合、終端にとんだまま終わっちゃう場合も
あるから、あっても良いかなとは思ったのですが。

 ブロックの繰り返しの間するための変数は・・・
自分の外側の変数を参照するのはよしとして、
繰り返しを暗黙的に再起呼び出しとみなす。
つまり、

n = 1
n = 3.times do
 n = n
 n += 1
end
p n #=> 4

なんてどうだろう?









やっぱへんか(^^;

>>717
「仮」じゃないから。
ブロック引数は多重代入として処理されるというルールと、
外部で定義されている変数はブロック内でも共有するというルールから
必然的にそういう結論になる。
後者については当人も失敗と認めているけど。
>>718
procでredoはできるようだけど。

$ ruby-1.4 -ve 'i=0;proc{p i;redo if (i+=1)==1}.call'
ruby 1.4.6 (2000-08-16) [i686-linux]
0
1
$ ruby-1.6 -ve 'i=0;proc{p i;redo if (i+=1)==1}.call'
ruby 1.6.7 (2002-06-12) [i686-linux]
0
1
$ ruby-1.7 -ve 'i=0;proc{p i;redo if (i+=1)==1}.call'
ruby 1.7.2 (2002-06-12) [i686-linux]
0
1

1.6.5あたりでちょっと仕様が二転三転したのかも。
>>719
> 自分の外側の変数を参照するのはよしとして、
> 繰り返しを暗黙的に再起呼び出しとみなす。

=の左右で別物になっちゃうわけ? lispのletなんかはそうだけど…。
723702 とか 711 とか:02/06/13 14:31
>>721
あ、それは実行できました。
>>716 の f = proc... を irb では error になったけど。

>>722
(let ((hoge hoge))
...)
という奴ですね。
hoge という変数に変更を加えても let を抜けると元通り。
でも >>719 のは読みにくい気がしました。するなら
{|x, y; n = n| ...} みたいな感じにして
外部のを参照しているのかパッと分かるようにするとか?
# うーむ…。
724719:02/06/13 15:44
>723

 ・・・ >719 を書き直すと

n = 1
n = 3.times do | ; n = n |
 n += 1
end
p n #=> 4

ですか。

 自分としては | ; って辺りが気持ち悪いんで、それこそ

n = 1
n = 3.times do
 let n = n
 n += 1
end
p n #=> 4

の方が好みかな・・・でもさすがにここまですると窮屈
な気もして来た(^^;
>>723
そりゃ>>716はredoに引数を追加すると*したら*って例だから、当然エラーだよ。

> >>722
> (let ((hoge hoge))
> ...)
> という奴ですね。
> hoge という変数に変更を加えても let を抜けると元通り。

さらにいえば、左のhogeは新しい変数だが右のhogeは外側の変数ということも含めて。

> {|x, y; n = n| ...} みたいな感じにして
やっぱりこれはrubyにはそぐわないと思う。

いい代案は思い浮かばないんだが…。
726デフォルトの名無しさん:02/06/13 16:51
文字列配列の検索ってどうやるのですか?
assocではうまくいきません。
p ["a", "b", "c"].assoc("a") # nilが返る

>>720
それはもうブロックと言わないだろ。
ブロックは一般的にはスコープの範囲を画定するためのものでもあるし。
それは、単にまとめてるからブロックと言ってるということだろ。
ほとんど誤用に近いよ。
うーむ、でもProcにしたり他のメソッドからyieldしたりできるというのが。
>>727
> ブロックは一般的にはスコープの範囲を画定するためのものでもあるし。
それはかなり偏った意見では。
>>726
grepとかfindとか
ary = ["a", "b", "c"]
p ary.grep("a")[0]
p ary.find {|s| s == "a"}

grepは該当するものすべてを返すので、一個だけでいいときはイテレータとし
て使うといいかも知れない
s = nil
%w[a b c a].grep("a") {|s| break}
p s

1.7なら一行
p %w[a b c a].grep("a") {|s| break s}

> assocではうまくいきません。
> p ["a", "b", "c"].assoc("a") # nilが返る
assocは目的が違う。
p [["a",1], ["b",2], ["c",3]].assoc("a")' #=> ["a", 1]
>>730
proc とかで盛り上がってるところに
| s = nil
| %w[a b c a].grep("a") {|s| break}
| p s
こんなの示されてしまうと ;(
732696:02/06/13 17:24
>>704
どうもです。
現状の上に機能追加、ということか。

>>702
問題がそれだけなら、C++の「::hoge」のような感じで、
外の変数を明示的に参照するようにすればいいのでは。
それはネストしたときに途中の変数を指定できない
734732:02/06/13 20:09
>>733
記号を重ねたり。
?hoge = 1 # 一つ上
??hoge = 1 # 二つ上
だめ?
他には、
?hoge # メソッドローカル
1?hoge # 一つ上
2?hoge # 二つ上

かなり痛い事を言っているのかもしれない。
>>734
いやん。いちいち数えなきゃダメなんて。
やっぱり let してない物については外を参照できるというのが
いいんじゃないかしらん?
>736

 数えるのがいやなときは

*?hoge

ってのはどう

#おれもイヤかも(^^;
738702 だけど:02/06/13 21:55
elisp で

(let ((hoge hoge))
...)

というのが使えると便利な事があるのは、
1. emacs は dynamic scope であり、
2. それぞれの変数名には決った役割がある
からですね。
たとえば一時的に hoge-hook に add-hook して
ある関数を呼びたいとか。

それに対して Ruby ではせいぜい組み込み変数ぐらいだから
この必要性はグッと低い。無理にこんな事できるように
する必要は無いのでは? と思いました。
なので >>712 みたいなのを積極的にサポートしなくても
よろしいのでは?
739702 だけど:02/06/13 21:56
失礼。
× なので >>712 みたいなのを積極的にサポートしなくても
○ なので >>719 みたいなのを積極的にサポートしなくても
>>734
すまん、::hogeで一つ外側のが見えりゃ充分だな。

ただ、この例で::barはどっちになるべきだろう?

def let(*args) yield(*args) end
foo = :foo
bar = :bar
let do <>
bar = :bar1
let do <>
foo = :foo1
p foo #=> :foo1
p bar #=> :bar1
p ::foo #=> :foo
p ::bar #=> :bar / :bar1
end
end

ブロックパラメータでないローカル変数はすべて
同じレベルのローカル変数にするというのでは駄目?

$v = 0
def local
 $v += 1
 yield $v
end

foo = 1
local{|x|
 p foo # 1
 p x # 1

 local{|x|
  p foo # 1
  p x # 2
  foo += 1

  local{|x|
   p foo # 2
   p x # 3
  }

  p x # 2
 }

 p x # 1
bar = 3
}
p x # nil
p bar # 3
p foo # 2
>>741
それはつまり<x;y>とかとおんなじわけよ。

> p x # nil
ここはNameErrorだろうな。
ri.rbとかrtags.rbってどこにあるんでしょか?
>>730
結果が1つでいいのなら無理にgrepを使うより
findの方がよくないか?
findのほうが融通が効いたりするけど、すべての要素についてyieldされるの
で速度的につらい場合もあるかもということで、お好みのほうを。
747 ◆japan/wc :02/06/17 12:39
rubyにscheme組み込める?
schemeで書いたライブラリをロードするってこと?
処理系によるんじゃないかな。
オライリーか独習本が出るまで待ちでいいですか?
イイ本が無くて始められないYO!!!
「The Ruby Way」とか「21days(名前忘れた)」の和訳は出ないのかな。
751743:02/06/17 20:48
>>744
ありがとう。
おかげでxyzzyのruby-modeが使いやすくなりました。
752デフォルトの名無しさん:02/06/18 13:24
ruby/gtkで質問。

button1 = Gtk::Button.new("ぼたん")

button1.signal_connect("clicked") {
puts "ぼたんが押されますた"
}

で、このプログラムを実行して、表示されたボタンをマウスなりで
クリックすると、signal_connectが呼ばれるらしいのはなんとなく
わかりました。

んで、やりたいのは、プログラム中でシグナルを発生させるにはど
うすればいいの?

button1.send_signal("clicked")
みたいなことをやりたい。
Gtk::Object#signal_emitってのがある…と思ったらNotImplementedじゃん。
最近Rubyを始めたのですが、どうも変数への最初の代入が変数の宣言となる仕様は
少々気持ち悪いのですけど、慣れるものですかね?
明示的な宣言があったほうが、変数名の打ち間違いも簡単に見つかるし、
わかりやすいと思うのですが。
なんかバカなこと言ってたらごめんなさい。
>>732
あっさり却下。
宣言してても打ち間違えるとメソッドと見なされる罠。
動的な言語が嫌ならPascalでも使えば?
自分に合うものを探したほうがいいよ。
動的束縛よりも、Rubyにはいくつかのトラップがある。

関数オブジェクトが実際には「関数」オブジェクトではないという罠。

Smalltalkばりのブロックであるかのようでいて
Rubyではifやwhileがオブジェクト指向的枠組の中に回収されていないため、
CやPascal等のブロックと混合してしまうという罠
混合 ⇒ 混同
759zeus.eonet:02/06/19 23:05
Net::HTTPで200 continueを処理するにはどうすればいい?
>>754
一生かかっても慣れません。
あきらめなさい。
HTTPレスポンスで200はOKだが。
rescue Net::HTTPInformationでredoするとか?
762759:02/06/19 23:50
http://www.books.or.jp/Index2.aspxでISBNコードからの検索結果をRubyで取得したいがどうにもうまくいかん
再度リクエストを送ればいいみたいなので
http.post('/ResultList.aspx',query_data)
を二回やってみたら
「詳細情報:不正な数値が渡されています。」ってメッセージが返されるだけ
とあるディレクトリ以下のファイルリストを保存しておいて
更新された場合にそのファイル名を返す・・・・
というスクリプトを作りたいんですが何か参考になるスクリプトやヒントぷりーず。
>>764
Find::find でファイル検索して、
ファイル名をキー、File#mtime を値にして dbm に格納でいいんじゃない?
766デフォルトの名無しさん:02/06/21 06:46
Rubyのすばらしさを俺に語ってください
>>764
ディレクトリってローカルのディスクのこと?
次のRuby本に望む話題をあげてください。
>>768
もう要らない。
770764:02/06/22 16:17
>>767
です。
>>768
クックブックみたいな。
このスレでも時々書かれるような、
ちょっとした機能や用途の為の小さなコードを集めた書籍、
みたいなものは欲しいなと思う時があります。
The Ruby Way がそれに近いよ。
http://www.amazon.com/exec/obidos/ASIN/0672320835/002-0332720-6810431
サンプルページが 120p 載ってるので参考に。
>>773
日本語訳版が欲しいな。
>774

 今日、神保町の三省堂で The Ruby Way を立ち読みしたけど、
英語の解説より Ruby の script の方が理解しやすかった(^^;

 そういう意味では、日本語訳でなくても良いのではないかと思った。

 
 
>>746
あ、そうか。
findは最初の1つで打ち切るから軽いと思ってたけど、
grepは===だけだからfindより軽い場合もあるのか。
RDE-0.960が出たらしい。IDEとしては使いやすい?

ttp://homepage2.nifty.com/sakazuki/rde.html

>>777
だれか kylix に移植してくれんかのう。
IDEの類は使わない
>>777
リファクタリング機能がほしいね。
あとは、UnitTest 支援機能。
イテレータて
繰り返すメソッドのことですか?
so
783デフォルトの名無しさん:02/06/28 19:23
>>781
ブロックを伴うメソッドのことです。
繰返子
それ、なんて読むんだ?
「くりかえし」 じゃない?
繰り返しが無くてもイテレータなのですか?
というような語弊が出てきたので、
今はブロック、ブロック付きメソッドと呼ばれている。
なるほど
ありがとうございました
790デフォルトの名無しさん:02/06/29 01:14
>>788
ブロック付きメソッドって呼び方は一般的?
Rubyプログラミング入門ではそう読んでいた。

全言語のページからブロック付きメソッドを検索しました。 約67件中1 - 10件目 ・検索にかかった時間0.09秒

Ruby のページだけ拾えて便利か?
>>778,780
無理だと思うけど。
もうおしまいだな
>>792
無理か…
eclipse の Ruby サポート状況を調べてみるかな。
795792:02/06/30 02:05
>>794
RDEはWindowsに依存した部分が多すぎる(DosCommand, TEditor)ので、
移植が難しいと思う。

eclipseは

http://sourceforge.net/projects/rubyeclipse

にRuby用のプラグインがあるけど、IDEとして使えるという程度で、
RDEより完成度が低いと思う。

おれはFreeRIDEに期待しているけど、ruby-talkを読んでても音沙汰が無いな。
日本ではRubyカンファレンスってないの?

ここ2・3年はLinux ConferenceにくっついてPerl Ruby Conferenceってのをやっ
てる。
arei = ["top1-1"、
     ["sub1-1"、"sub2-2"]、
     ["sub2-1"、"sub2-2"]、
     "top1-2"、
     "top1-3"]
って配列があって(実際には、top〜、sub〜、ではなくめちゃく
ちゃ(識別不可)な文字列)

# 再帰を使った配列の配列の配列の配列のプリント
def recPrint(aArray)
 aArray.each { |str|
  if str.instance_of?(Array)
   recPrint(str)
  else
   p str
  end
 }
end

配列のすべての要素に対してある処理(ここでは出力のみ)を
したくて↑のようなメソッドを作りました。僕がやりたいのはトップ
レベルの要素のみに特別な処理をしたいのです。
(トップレベルは、top1-1、top1-2、に加えて、[sub1-1、sub1-2]、
[sub2-1、sub2-2]もあるけど、ここでは単純データのみを対象にしている)

↑のプログラムでは、例えば、
toplevel top1-1
sub1-1
sub1-2
sub2-1
sub2-2
toplevel top1-2
toplevel top1-3
のような出力を得ることはできません(トップレベルかどうか判別できないので)。

Rubyは不慣れですし、なにか見落としてそうで歯がゆいです。
よって、誰か助けてください。
799デフォルトの名無しさん:02/07/01 03:58
宿題?
トップレベルとそうでないのと同じことしてたらそりゃだめでしょ。
特別なことしたいのなら違いをつけなきゃ。関数を変えるとか引数
を変えるとか。

> Rubyは不慣れですし、なにか見落としてそうで歯がゆいです。
> よって、誰か助けてください。

もっと深刻。おまえさんの頭が不自由。よって助けられない。
801デフォルトの名無しさん:02/07/01 04:04
>>800
カスはだまっててください。
800ではないが、

> 特別なことしたいのなら違いをつけなきゃ。関数を変えるとか引数
> を変えるとか。

これが理解できないなら黙ってろ。
>798
Rubyに不慣れってより、プログラムに不慣れなんじゃないのか?

800も指摘してるけど、トップレベルの要素とそれ以外に対する
処理が違っている以上、いきなり再帰を使うのは無理がないか?
それともどうしても再帰を使わなくてはならない事情でも……?

この場合、areiの各要素について配列かそうでないか判定する
関数を作って、もしそうでないなら、トップレベルに対する出力処理。
配列なら再帰を使ったそれ以外の出力処理をする下請け関数に
渡すようにするのが自然だと思うが。

ちなみに、Array#flattenを使えばこの場合再帰もいらないんだが・・・

Arrayを含むArrayだから、再帰を使うというのはある意味必然だと思う。
この程度なら>>800の後者にするかな。そのほうがシンプルそう。
HTMLエスケープされた文字列をCGI.unescapeElementを使って特定の要素だけ戻しています。
その特定の要素の中にコメント(<!-- -->)をつけたしたいのですがどうすればいいでしょうか?
特定の要素ってのが一つだけならsub(/>/, '><!-- -->')とかでいいんじゃないの。
807デフォルトの名無しさん:02/07/03 00:35
Apolloってどうよ?
ちょっと使ってみた限りではとっても良かった。
808デフォルトの名無しさん:02/07/03 11:36
>807

 DBアプリが Ruby でサクサク書ける所と Strings や DateTime 等、
Delphi 譲りの使いやすいクラスがあるのが良いかな。

 あと、 msi を使っているのでインストールやアップデートが簡単、
http://jurader.s1.xrea.com/apollo/tutorial/tut_index.html にある
チュートリアルがよく出来てる。と云う点も利点だと思うけど、既に
使って見てるなら、知ってるでしょう。

 欠点は、ドキュメント不足とレイアウト関連が弱い点(これは Windows
の欠点かもしれないが)。
今そのチュートリアルを眺めてみたが、
http://jurader.s1.xrea.com/apollo/tutorial/tut_form.html
は文字コードと改行コードを混同してるな。
昔ML入ってたことあるけど、Tacosってやつが知ったかでライセンスの嘘の話を
撒き散らすのがうざかった。
著作権などの法律には詳しいようだったが、ライセンスの知識
については一人でアホな解釈ばかりだった。
>>808
Apolloは少し触ったことがあるが、DBアプリを作っている人なんかいるのか?

>>809
確かに混同しているな。まあ、WindowsではShift_jis + "\r\n"、Linuxや*BSDでは
euc-jp + "\n"の組み合わせが多いことに違いはないが。
ところで、このチュートリアルは少し説明が冗長じゃないか?
>>808
そのチュートリアルは Apollo のページからもリンクされているから知っているけど、
読むのがめんどくさくなるようなページなので途中でやめた。
813デフォルトの名無しさん:02/07/04 01:00
>811-812
 まあ、チュートリアルなんてのは、冗長な位がちょうどいいんじゃ
ねえのかな。文章読むのが面倒なら、サンプルのスクリプトを読めば
いいだろうし。

>>807
日本語は通りますか?
unicodeに変換しないといけない?
815デフォルトの名無しさん:02/07/05 22:33
Cのライブラリのヘッダを渡すと自動的に
Rubyからその関数を呼べるようなツール・ライブラリはないですか?
816デフォルトの名無しさん:02/07/05 22:34
Rubyのデベロッパーてすごいな
>>815
swig を使うとラッパーライブラリが比較的簡単に作れる。
Ruby/DL と使えば直接呼べる。
818デフォルトの名無しさん:02/07/06 02:11
>814
 基本的には ruby だから Shift-JIS で問題ない。
819デフォルトの名無しさん:02/07/06 02:37
>>818
THX!
ダウンロードしてサンプルを見たら、普通に漢字がスクリプト中に入っていました。
Powerd by RubyのAAキボンヌ。だそうだ([ruby-talk:43721])
>>821
AAというか、1文字1ドットの画像(w。
ワラタ。
823デフォルトの名無しさん:02/07/11 11:33
Ruby.NETっていつ出るの?
というかgoogleでどうやって"Ruby.NET"を検索すりゃいいの?
824デフォルトの名無しさん:02/07/11 11:44
モジュールの動的ロードはできないの? class A  def b(n)   include n  end end a = A.new a.b('ModuleName') 実行すると、 Aクラスにincludeメソッドはありませんって言われる。
>>823
出ません。
出るとしても、オフシャルじゃなくて多分ユーザーが作るんだろうね。
>>824
できません。
>>824
何がしたいのかいまいちはっきりしないがこういうことか?

class A
 def b(m)
  extend(m)
 end
end

a = A.new
a.b(Enumerable)

あるいはこっちか。

class A
 def b(m)
  self.class.module_eval {extend(m)}
 end
end

a.bで、aだけにモジュールを追加したいのか、A全体に追加したいのか。
828デフォルトの名無しさん:02/07/16 21:35
Thread.age
見事なクソスレですね。
830デフォルトの名無しさん:02/07/18 21:33
ソートって昇順だけ?降順にするにはリバースつかうん?
sortにあたえるブロックを変えれば、reverseしなくても済む。
[1,2,3].sort{|x,y| y <=> x}
C言語の
#ifdef DEBUG
みたいなのはありませんか?
自作のデバッグ用の機能を場合によってつけたり取り除いたりしたいのですが。
みなさんはデバッグどうしてますか?
-dつけると$DEBUGの値がtrueになる

> ruby -d -e 'p $DEBUG'
true
> ruby -e 'p $DEBUG'
false
[ruby-dev:17706]はいったい何を狙ったもんなんだろう…。
デメリット以外まったく思い付かん。だれか説明してくれ。
>>835
bladeが死んでるらしくて閲覧できないよう。
>>835
名無し特異メソッドをブロックのように書きたいのだと思はれ。
>>836
まだ死んでる。
確認したいことがあるのに、、、
>>834
ありがとー。
当たり前ながらプリプロセッサという概念はないんですね。
デバッグコードを埋める→コードぶくぶく太る
になっちゃうなぁ。
センスない私はちと扱いに戸惑います。
>>839
cpp通すとか。当然場合分けのコードはC風に#ifとか#ifdefになります。

% cpp foo.rb | ruby

でも現在(今後も?)のRubyにそのような機能が無くて、
しかもユーザ的にもあまいその手の欲求が無い(本当か?)ということは、
代替手段があるか、根本的な考え方が違うとか、そういうところかも。
漏れはデバグ用コードは平気で残すけども。だって実行自体には
影響ないだろうし。
>>837
それはまだ分かる。でも、それと「selfを置き換える」ってのが、一体どうつー
かなんで結び付くのかがまったく理解できん。
>>841
メソッド定義なのだから、普通のメソッド定義と同じ context、つまり
class ... end の中で定義するのと同じ context にしたいということでは。

ブロックの context が変わることは現状でもあります。
Object#instance_eval、Module#module_eval と 1.7 の
Module#define_method にブロックを渡した場合。
843842:02/07/21 23:39
って、 >>826 で使ってまんがな。
>>842
そもそもの動機は現在のブロックを知りたいってことだと思ってたんだけど、
もうそれとは独立した要求なのかな。どうもいまいち何をどうしたいのか、結
構みんな混乱してるような。

暗黙の{instance,module}_evalを行うのはTkとかModule.newとかもあるけど、
できればあまり例外を増やして欲しくない。少なくとも、定義側で決めるべき
であって、使用側でオブジェクト内部にアクセスできるかどうか決めるのは良
いとは思えない。
845デフォルトの名無しさん:02/07/25 19:12
「たのしいRuby」を読んだプログラミング初心厨です。
次に初心者が読むべき本を教えてください。
このスレ遡って見ると「Rubyプログラミング入門」あたりになりそうですが、
他にありましたらお願いします。
>845
次にやるのは、実際にプログラムを書くこと。
Rubyで書かれた実用的なアプリケーションってあります?
848デフォルトの名無しさん:02/07/25 22:13
RubyでGUIできるの?
>>847,>>848
SGmailは両方の答えになるか?
850848:02/07/25 23:14
tkは使えるのですか?
windowsでRuby+GUIプログラミングしてみたいです。
Rubyともひとつtcl/tkも入れないとだめなのかな?
まあ、気軽にぼちぼちやっていこうと思ってます。
>846
「書け、然らずんば、去れ」という感じでしょうか。

もうちょい、このままでつづけてみます。

ポチポチと書いてはみるものの、
なにせ初心厨、今だなお足元覚つかず、
うーんと不安を募らせることも多々あり、
暗き道筋照らすロウソクがもう一本も欲しいかなと思った次第でして・・・。
お手間取らせて、スイマセン。
>>850
WINでGUIならvrubyがいいと思うぞ
ttp://www.osk.3web.ne.jp/~nyasu/software/vrproject.html
853デフォルトの名無しさん:02/07/26 06:22
>>851
プログラミングRubyはいいぞ
短かくて素直で気のきいたコードがたくさん
854デフォルトの名無しさん:02/07/26 06:23
>>851
プログラミングRubyはいいぞ
短かくて素直で気のきいたコードがたくさん
>>851
> 「書け、然らずんば、去れ」という感じでしょうか。

つーか、プログラムを書かない奴には用のない代物だし。

そういえば「レシピ本」の話もあるな。
>>847
QuickML Migemo 匿名掲示板(仮)
まあ、アプリよりツール作成向き。
>>856
>匿名掲示板(仮)
初めて知りました。
858デフォルトの名無しさん:02/07/26 19:00
こんにちh
どこかはいえないけど、仕事でいくつかrubyを使ったサイトを納めてるよ。
って、コードを公開してないということはないも同然か(w

もうひとつ案件きてるけど、こいつもrubyで作るつもり。
>>857
Ruby(walrus) + C++ だそうだ。
http://210.155.146.159/bbs/
walrus がもうちょっとこなれてくれればなあ。

>>858
"こんばんは".chop #=> "こんばん\202"
>854
ありがとうございます。
ちと高い本なので、まずは本屋へ立ち読みに行ってきます。
「たのしいRuby」だけでは少々心許ないですし、
かといって、初心者にはWEB上の情報はなかなか見つけづらく、読みづらく、
やっぱ本が欲しかったのです。

>855
確かに。
ただ初心者なんで、用の無い代物を用の有るモノにしていく途上ってことで、ご勘弁願いたいです。

流れから外れたカキコでゴメン。
862デフォルトの名無しさん:02/07/27 03:11
>>861
helpは見たのかの??
>>850
WindowsならApolloがよいと思われ。
Windows上のGUIでThread動いた人いる?どうやった?
>>865
cygwin版なら動くらしいけど、あれはWindows上というのかなあ。
>>865
ASRは使えると思うが。
他のもできそうな気がするが、反応が鈍かったりするか知れん。
最近、教祖まつもとの態度がでかくなった気がするが、気のせいか?
>>868
>>835のキティ相手なら、あれで良いかと。
871デフォルトの名無しさん:02/07/30 11:29
http://www.ganaware.org/S/sow/
にあるstart.pl を利用して、vmware内のIE内にGoogleの
検索結果を表示させるスクリプトを書いてます。
例えば、
% cat keyword
浜崎あゆみ
あゆ
AYU
ハマザキ アユ

% cat suffix
さま

たま
タン

の時に

% googlize-declinable_word keyword suffix
と使う。


% cat googlize-declinable_word
#!/usr/bin/env ruby
require "kconv"

keyword_file = ARGV.shift
suffix_file = ARGV.shift
kw_count = 1
googlized_count = 1

File.foreach(keyword_file) do |kw|
print "keywordの#{kw_count}つ目-->#{kw}をループしてます。"
kw_sjis = Kconv.tosjis(kw)
File.foreach(suffix_file) do |sf|
sf_sjis = Kconv.tosjis(sf)
system("~/local/bin/start.pl 'http://www.google.com/search?hl=ja&meta=lr=lang_ja&num=10&q=#{kw_sjis}+#{sf_sjis}'")
sleep 1 # ← 間隔は適宜変更
print "現在#{googlized_count}つ目が検索中... #{kw} #{sf}"
sf_count += 1
end
kw_count += 1
end


ところが、

&q=#{kw_sjis}+#{sf_sjis}'")
の部分の sf_sjis が外れて、kw_sjisのみ
が検索されてしまいます。

rubyには文字列の連結に
何か特別な書き方があるのでしょうか。
初心者ですが、よろしくお願いします。



>>871
systemの引数が一つでメタキャラクタを含んでいる場合は、/bin/sh経由で実行される。
この場合は&'?~など。
START_PL = File.expand_path("~/local/bin/start.pl")

system(START_PL, "http://www.google.com/search?hl=ja&meta=lr=lang_ja&num=10&q=#{kw_sjis}+#{sf_sjis}")

と引数が複数あれば直接実行する(かわりにメタキャラクタは解釈されないのでパイプやリダイレクトは働かない)。
で、おそらくSJISに変換した結果、シェルで誤って解釈されるコードが含まれてしまったのではないかと想像してみた。
874デフォルトの名無しさん:02/07/30 13:17
>>869
>>835の対応のことなら、
むしろ、よくあそこまで辛抱してつきあったとホメてやりたい
875871:02/07/30 14:41
サンクス>873
sjisが怪しいということで
以下のようにしてみた。

#!/usr/bin/env ruby
require "kconv"

START_PL = File.expand_path("~/local/bin/start.pl")

keyword_file = ARGV.shift
suffix_file = ARGV.shift
kw_count = 1
googlized_count = 1

File.foreach(keyword_file) do |kw|
print "sjis DebugPrint keywordの#{kw_count}つ目-->#{kw.chop}をループしてます。\n"
kw_sjis = Kconv.tosjis(kw)
 File.foreach(suffix_file) do |sf|
  sf_sjis = Kconv.tosjis(sf)
  print "#{kw_sjis.chop} #{sf_sjis.chop}\n"
  #system("~/local/bin/start.pl 'http://www.google.com/search?hl=ja&meta=lr=lang_ja&num=10&q=#{kw_sjis}+#{sf_sjis}'")
  system(START_PL, "http://www.google.com/search?hl=ja&meta=lr=lang_ja&num=10&q=#{kw_sjis}+#{sf_sjis}")
  sleep 1 # ← 間隔は適宜変更
  print "現在#{googlized_count}つ目を検索中... #{kw.chop} #{sf}"
  googlized_count += 1
 end
kw_count += 1
end
これをEUC_JPなターミナルでやると
おかしくなるので、
WinのTeraTermでターミナルをSjis表示にして実行
すれば、sjisのところは表示されているのを確認。


原因のsjis文字がだめなら、
URLエンコーディングなどで
%82%C6・・・・などに変換したいけど、
やり方判りません。
これから、rubyでURLエンコーディングしてる人を探して来ます。


CGI::escape
877871:02/07/30 15:17
#!/usr/bin/env ruby
require "kconv"
require "cgi"
START_PL = File.expand_path("~/local/bin/start.pl")

keyword_file = ARGV.shift
suffix_file = ARGV.shift
kw_count = 1
googlized_count = 1

File.foreach(keyword_file) do |kw|
  print "keywordの#{kw_count}つ目-->#{kw.chop}をループしてます。\n"
  kw_esc = CGI::escape(kw)
  File.foreach(suffix_file) do |sf|
   sf_esc =CGI::escape(sf)
   system(START_PL, "http://www.google.com/search?hl=ja&meta=lr=lang_ja&num=10&q=#{kw_esc}+#{sf_esc}")
   sleep 1 # ←間隔は適宜変更
   print "現在#{googlized_count}つ目を検索中... #{kw.chop} #{sf}"
   print " #{googlized_count}つ目のDebug #{kw_esc.chop} #{sf_esc.chop}\n"
   googlized_count += 1
  end
kw_count += 1
end
878デフォルトの名無しさん:02/07/30 15:20
>>872 >>876 できました 有難うございました。 CGI::escape した時に語尾に付加される%0 ってなんですか?
つーかie=euc-jp&oe=euc-jpつけてみれば?
>>874
ああ。
自分ならとっくにブチキレてるな。
881putsとprint:02/07/31 12:25
require 'net/http'

host = 'www.ruby-lang.org'
path = '/en/'

http = Net::HTTP.new(host)
page=http.get(path)[1].delete("\n")
pages= page.scan(%r|<div [^<]+>Ruby Versions.*?</div>|i)[0].gsub(%r|<.*?>|,'')
#puts pages
print pages


において
printだと表示が直ぐに消えるけど
puts だと STDOUTにちゃんと表示される。
これって仕様ですか?
zsh だったりする?
883881:02/07/31 14:49
>>882 はい。zsh です。
zshはプロンプトを行頭から表示するらしいので、それに消されてるんだろう。
~/.zshrc あたりで unsetopt promptcr しておけば消えないはず。
886putsとprint:02/07/31 20:45
http://dengaku.org/~naoki/zsh/FAQ-J/zshfaq03-j.html#l39
読みました。
以前からの悩みも同時に解決しました。
有難うございました。
なんか全然rubyの話題じゃないよ。
888デフォルトの名無しさん:02/08/01 00:39
exerbでApolloごとexeファイルにできますか?
889848_:02/08/01 02:34
>>852
>>864
ありがとうございます。私の所はmswin32の方なのでvrubyはsigwinがないと駄目
みたいでした。
appoloは皮って居ますね。こちらはインストールして直ぐにGUIプログラミング
が出来るようになりました。中々良く出来ていますね。とても面白いです。
vrubyはcygwinだけじゃなくてmswin32でも動くはずだけど。
少なくとも以前試したときは。
>>888
exerb-dev MLで聞いてみたほうがいいと思うが、
ちょっと見た感じではコアの置き換え自体はそんなに問題ではないと思う。
どちらかというと問題は、Apolloがどの程度ruby本体を改造してるかかな。
あと、Apolloって本体はDLLになってるんだっけ?
>>891
今ちゃんと調べる時間が無いんでアレですが、
今のApolloはRuby側のDLLには手を付けない様になっているはず。
Apolloの本体はPhi.soというDLL(だよね?)のはず。
間違ってたらスマソ。
>>892
だったら、phi.soもくっつけてやればいいだけのような。
vrubyはmswin32でも動く(もちろんmingwでも)。
というか、両方のプラットフォームで、それぞれメンテナがバイナリも
公開している。
だれかこいつ[ruby-talk:46041]になんとかいってやってくだちい。
896putsとprint:02/08/02 22:27
>>895
ウケタ
オブジェクト変数とはオブジェクトへのポインタですか?
クラス内でしか利用できないのですか?

クラス内にスコープを持つ変数が使いたいです。プロパティのように。
>>897
オブジェクト変数ってなに? インスタンス変数のこと?

Class Foo
 def initialize
  @bar = nil # クラス内でしか見えない
 end
end

ってできるけど、それとは違うのかな。

すべての変数はオブジェクトへの参照だよ。
ポインタと似てはいるけども。
899デフォルトの名無しさん:02/08/03 01:33
あ、失礼、そうです。インスタンス変数でした。
@barはinitializeで初期化するのですか?例えば、

 Class Foo
  @bar="hello"
  def shigeSay
   print "shige!"
  end
 end

のように@barを書いて良いですか?
あと、Foo.deleteはしなくて良いのですか?
>>899
そこに@barを書くのはダメだったと思う。
それと、クラスの定義はClassじゃなくてclassね。

class Foo
  def initialize
    @bar = "hello"
  end
  def shigeSay
    puts "shige!"
    puts @bar
  end
end
Foo.new.shigeSay

こんな感じ。初期化はinitializeメソッドでやる。
Foo.newってやると、initializeが呼ばれるようになっている。

で、通常使い終わったインスタンスを明示的に開放してやる必要はない。
ガベージコレクトのおかげで、ある特定のタイミングで
参照されなくなったインスタンスは自動的に開放される。
>>900
あっと、補足。

別にインスタンス変数はinitializeメソッドの中だけでしか初期化できないわけじゃない。
う、二重否定だ。つまりinitializeで初期化しなかった変数だってつかえる。

class Foo
  def initialize
    @bar = "hello"
  end
  def setnum(n)
    @n = n
    self
  end
  def shigeSay
    puts "shige!"
    puts @bar
    puts @n
  end
end
Foo.new.shigeSay
Foo.new.setnum(10).shigeSay

ただ、インスタンス変数の初期化はinitializeでやるのが普通(だと思う)。

もし読んでないのなら、
ttp://www.ruby-lang.org/ja/uguide/uguide00.html
この辺読んどくといいよ。
902デフォルトの名無しさん:02/08/03 02:11
>もし読んでないのなら、
>ttp://www.ruby-lang.org/ja/uguide/uguide00.html
それ読みました。で、いまリファレンスマニュアルとProgrammingRuby(english)
の方読んでたんです。

それから、これ多分nilになってると思います。私の所ではそうでした。
def initialize
@bar = "hello"
end
これは多分、
 def initialize(s)
  @bar=s
 end
として、Foo.new("hello")としないと駄目みたいです4。
んなこたぁない
904デフォルトの名無しさん:02/08/03 02:18
で、これから、rubyを勉強したいんですが、
1からやさしく教えてくれているweb siteって、ありますか?
>>902
おー、原書のProgrammingRuby読んでるのか。おれ、日本語版しか持ってないヘタレ(w

>それから、これ多分nilになってると思います。私の所ではそうでした。
>def initialize
>@bar = "hello"
>end

いや、@barは"hello"で初期化されるよ。
ためしにそのクラスで@barをputsするメソッド作って呼んでみて見て。

def puts_bar
 puts @bar
end

みたいな。

サイトはしらんが、「Rubyプログラミング入門」はお勧め。
結構読み応えある(とおれは思った)。
ttp://www.bk1.co.jp/cgi-bin/srch/srch_detail.cgi/3d48d6aa9290b01024e6?aid=&bibid=01943123&volno=0000
あ、またまた失礼。上のinitializeメソッドで@bar初期化されました。
私のコードに打ち間違いがあったようです。
英語のProgrammingRuby読んでたらinitializeがinitializerになってる
んだもんなぁ・・・。
ま、あとは分かんないことがあったらここで聞いてみるとか。
ここしばらくネタもないし。
>904
探したけど、ないなぁ。本探す方が良いかもしれない。

メソッドの呼び出し形式は関数形式とレシーバ形式があるようですが、これは
Integer(3.14) --- 関数形式
Kernel.Integer(3.14) ---レシーバ形式
でよろしいの?
910putsとprint:02/08/04 12:16
=**=<<=
*=>>=
+=/=&=
-=%=|=
.=x=^=

rubyに上記の演算子を追加させる
モジュールってありますか?

.= がツカーイターイのよ。
911デフォルトの名無しさん:02/08/04 12:27
Tabが消されてたので、再度。
=*    *=    <<=
    *=    >>=
+=    /=    &=
-=    %=    |=
.=    x=    ^=
912るび厨:02/08/04 13:31
るび基地にモジュールとクラスの違いをきいたけれど答えてくれないよ
ウハーン!
>>911
色んなものが飛び交うAAですか?
914911:02/08/04 16:56
>>913
代入演算子のことだけど、何か?
>>914
演算子は勝手に増やせないだろ。
916通りすがり:02/08/04 21:45
>>916
オーバーロードじゃ演算子は増えないだろ
なんかしんないけどLinuxをインストールしたらRuby処理系が付いてきた。
やる気無くした。
>>918
気にするな。使わなければないのとおなじ。

それはそれとして、できればそういうネタは撲滅スレでやってくれ、
と一応書いてみる。
>>918
わざわざこんなところに書くようなことか?
そういえばカッコいいと思っているだけじゃ?
と一応書いてみる。
921sage:02/08/04 22:24
日本語のページからインラインスケートを検索しました。 約23,600件中1 - 50件目 ・検索にかかった時間7.74秒
ぐーぐるで7秒もかかったよ、
と一応書いてみる。
922デフォルトの名無しさん:02/08/04 23:50
MacOS8.6でRubyは動きませんか…?
>>922
最新版でなくても良いなら、動くものがあります。

MacRuby
http://www.imasy.or.jp/~hisa/ruby/macruby.html
>>911
この中で *= <<= >>= += /= &=
-= %= |= ^= あたりは使えるんじゃないかな。
.= は無理。
925sage:02/08/06 04:30
英辞郎サイトがUserAgentをcheckし始めたので、
「英辞郎 - コマンドラインから和英/英和単語翻訳
http://bulknews.net/lib/columns/02_eijiro/column.html
にあるコマンドが使えなくなった。UserAgentをつけろという。

元ソースを苦手なperlで弄るより、
rubyで改変したいが、rubyでUserAgentをつけるにはどーすれば
いいのかおしえてくらはい。
926名無しさん@xyzzy:02/08/06 06:11
俺も困ってるよ。てか、UA じゃなくてリファラのチェックしてるんじゃ
ないかなあ。HTTP ヘッダに流せば簡単に偽造できるよ。UA も リファラ
も。
とりあえず手っ取り早くw3mを使って移植してみたけど、
「ユーザ名/パスワードが無効です」っつわれるな。
あとは適当にやってくれ。

#! /usr/bin/ruby
# eijiro.pl - http://www.alc.co.jp/eijiro/

require 'kconv'
require 'net/http'
require 'uri'
require 'readline'
#use HTML::FormatText;
#use HTML::TreeBuilder;

HISTORYFILE = File.expand_path('~/.eijirohistory')
W3M = "w3m"
USER_AGENT = "UserAgent: eijiro.rb"
ACTION = 'http://www.alc.co.jp/eijiro351.php3'

def translate(line)
 # 'je' if non-ASCII char is contained or 'ej'
 type_in = line.index(/[^\x00-\x7f]/) ? 'je' : 'ej'
 word_in = URI.escape(line.tosjis, '\W');
 system("w3m", "-header", USER_AGENT, "#{ACTION}?word_in=#{word_in}&type_in=#{type_in}")
end

# Terminal mode / Argv mode
unless ARGV.empty?
 translate(ARGV.join(' '))
else
 # read history
 history = []
 if File.exist?(HISTORYFILE)
  Readline::HISTORY.push(*File.readlines(HISTORYFILE).uniq)
 end

 # readline & translate
 while line = Readline.readline('eijiro> ')
  break if /^!exit/ =~ line
  translate(line)
  open(HISTORYFILE, "a") {|f| f.puts(line)}
  Readline::HISTORY << line
 end
 line or puts
end
こんなんでどうよ?


ACTION = 'http://home.alc.co.jp/db/owa/eijiro_red2'

def translate(line)
 # 'je' if non-ASCII char is contained or 'ej'
 type_in = line.index(/[^\x00-\x7f]/) ? 'je' : 'ej'
 word_in = URI.escape(line.tosjis, '\W');
 system("w3m",
    "-header", USER_AGENT,
    "-header", "Referer: http://www.alc.co.jp/sa_menu.html",
    "#{ACTION}?word_in=#{word_in}&type_in=#{type_in}")
end
929デフォルトの名無しさん:02/08/06 11:29
某スレより。
------------------
bindkey -s "^xi" '\C-a`\C-e`\C-aforeach i \(\C-e\)'
bindkey -s '^[l' '\eb~/\ef\C-x*'
とかはかなりイイ。
普段は、C-mな俺は、C-jを
bindkey '^j' accept-and-infer-next-history
に、また
bindkey '^[^I' reverse-menu-complete
も直感的でイイ。
また、キーマップ指定で、
bindkey -M menuselect 'キー' command
とできるのもイイ。
-------------------
みんなのbindkey -s を見せ合おう。


930929:02/08/06 11:30
マチガイ。
無視してください。
931デフォルトの名無しさん:02/08/06 11:35
てか、英辞郎のページって
頻繁にURL変更しない?
ブラウザのGetメッソドで直接
検索させている奴は
一々対応しなければならず、
メンドーイはず。
>>928
>  word_in = URI.escape(line.tosjis, '\W');

rubyのURI.escapeはperlのURI::Escapeとは違って、unsafeにStringを渡すと
Regexp.quoteするので、/\W/とすべし。
933>>92:02/08/06 12:42
>>928

system("w3m","-dump",
"-header", USER_AGENT,
"-header", "Referer: http://www.alc.co.jp/sa_menu.html",
"#{ACTION}?word_in=#{word_in}&type_in=#{type_in}")
end

の方がイイ。
いちいちw3mが起動するのはウザイ。

つうかおまえら Nifty 使ってる友達のひとりもいないのか?
935デフォルトの名無しさん:02/08/06 13:08
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06461-1
の索引って公開されていますか?
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06385-2
の方は公開されているので、もしかしたら公開されていると嬉しい。


http://www.oreilly.com
なんて、ほぼ全ての本について、索引を公開している。
本を紐解く前に、PCで本の内容が確認できるのは嬉しい。
9月にプログラミングPer l第三版 が出版されますが、
上下巻もあるのなら、英語版を買って、索引を検索できるように
したほうが圧倒的に便利だと言える。

独り言でした。
ruby-talk まで Unicode か。
>>895

[ruby-talk:45931]もひどいな。
938デフォルトの名無しさん:02/08/08 09:58
>>927
これを改造して、Postメソッドを発行できるように
出来ますか?
できます。
携帯電話にメールを送る場合に整形してくれるスクリプト(ruby)があったと思うんだけど
名前かURLきぼん。
>>937
厨房は放置することにしますた。
942デフォルトの名無しさん:02/08/08 20:25
>>941
今でもいくつかレスが付いてる。

しかし、この厨房、[ruby-talk:46032]とは全く違うなあ。
>>943
禿同。
[ruby-talk:46376]にも呆れられてしまった模様。
ところでお前ら、devもlistもマターリしすぎです。
少しはpython-ml-jpの殺伐さを見習ってくだちい。
>>945
あのようには なりたくないものだ。
次のスレはどうする?
948デフォルトの名無しさん:02/08/09 21:18
Ruby/Gtk でウィザード作りたいのですが、どうやると効率的でしょう?
5枚ウィザードあるなら、5個クラス用意してそれを順に出して……とか
やってるのですが、なんか激しくダメな方法な気が致します。
>>948
各viewに対してGtk::Dialogのサブクラスを作ってってことなら、問題はない
のでは。いちいちサブクラスを作るのはRuby的には回りくどい気はするけど。
中心にあるモデルをそれぞれ別のオブジェクトにしてってつもりなら、場合に
よるが、一度設計の見直しを奨める。

> 5枚ウィザードあるなら、
つーか、それぞれのダイアログをウィザード1枚と数えるとは知らなかった。
>>947
立てるの?
立てるとしたら、以前あったrubyスレとは別にする?
とりあえずRubyの本スレっぽくしてくれると嬉しい。
一本はまともなRubyスレ欲しいし。
次スレです。

Rubyについて Part 2
http://pc3.2ch.net/test/read.cgi/tech/1028906179/l50
速いね。thx
>>949
MALIKTO!
タイトルにRubyの付いたスレ。
ム板でないスレの方が良い感じ?

rubyを語るスレッド
http://pc.2ch.net/test/read.cgi/unix/1018967064/l50

【Ruby】RubyでCGI
http://pc.2ch.net/test/read.cgi/php/988948655/l50

goRua(Ruby/Gtkによる2chブラウザ)ってどうよ。
http://pc.2ch.net/test/read.cgi/unix/1008120213/l50


(駄スレ?)

ruby撲滅スレ その2
http://pc3.2ch.net/test/read.cgi/tech/1009193707/l50

Rubyの実装に疑問あり!
http://pc3.2ch.net/test/read.cgi/tech/1004873294/l50

【戦慄】最強対決!!COBOL対Ruby!!【恐怖】
http://pc3.2ch.net/test/read.cgi/tech/1013260213/l50

Ruby v.s. Python
http://pc3.2ch.net/test/read.cgi/tech/980786239/l50

Ruby >>>>>> C++ だろ(ぷ
http://pc3.2ch.net/test/read.cgi/tech/1017201348/l50

shige と作ろう Ruby で CGI
http://pc.2ch.net/test/read.cgi/php/1001292585/l50

他にもあるでしょう。
>>955
上3つを、新スレに貼りますた。
>>955
> rubyを語るスレッド
> http://pc.2ch.net/test/read.cgi/unix/1018967064/l50
このスレは非常に閑散としてる。

> 【Ruby】RubyでCGI
> http://pc.2ch.net/test/read.cgi/php/988948655/l50
>
> goRua(Ruby/Gtkによる2chブラウザ)ってどうよ。
> http://pc.2ch.net/test/read.cgi/unix/1008120213/l50
ちょっと目的が違うからなぁ。

> ruby撲滅スレ その2
> http://pc3.2ch.net/test/read.cgi/tech/1009193707/l50
その1の途中あたりは結構いい感じになってたんだが、今のはただの個人叩きだけ。

> Rubyの実装に疑問あり!
> http://pc3.2ch.net/test/read.cgi/tech/1004873294/l50
これもネタ切れっぽい。

あとはカス。
958デフォルトの名無しさん:02/08/11 17:10
Arrayクラスのfilterメソッドって今はないのですか?
実行すると何か
warning: Array#filter is deprecated; use Array#collect!
と叱られるんですけど.....
960スレ誘導:02/08/11 18:50
次スレ
Rubyについて Part 2
http://pc3.2ch.net/test/read.cgi/tech/1028906179/l50
こっそりうめたて
忘れた頃に埋め立て
梅殺陣
964デフォルトの名無しさん:02/11/02 03:07
1000!
965デフォルトの名無しさん:02/11/02 03:09
あと34レスでこのスレは自爆します
いおえじょい
968デフォルトの名無しさん:02/11/29 03:36
Rubyがクソだと思う理由。
1)遅い。Perlにはもちろん、Pythonと比べても遅い。
2)Windows向けバイナリ配布にデファクトスタンダードがない。
3)ソースからモジュールをコンパイルするとの方法が統一されていない。
4)CPANを後から追っているのに、RAAは全然使い勝手が悪い。
5)ドキュメンテーションが不十分(RDによるドキュメンテーションはPerlに
おけるPODよりも全然なってないし、RDが完全に普及しているわけでもない...
RDがRubyの言語仕様に含まれていないためと思われる)。
>>968
わざわざRubyスレを探して、他スレのコピペを張るとはお前も必死だなw
後半「Rubyの良い点」を削除するなよ。
釣られんな
メジャーな処理系が3つ以上ない言語は、言語と呼ぶに値しない。
PerlもPythonもRubyもクソってこと。
Delphiもクソでつか
当然。DelphiもVBもC#もクソ。
>>971
その理論だと LISP が一番素晴らしい言語ってことになるな。
(´-`).。oO(すばらしいかどうかはまた別問題だろ
977デフォルトの名無しさん:02/12/01 03:58
>>975
今はCの方が処理系多いんじゃ?
>>977
「今は」の根拠がわからんが、
Cはそんなに多くないよ。
>>978
だって、Lispの処理系なんて今はほとんど皆無ジャン。
980名無しさん@xyzzy:02/12/02 06:53
>>979
emacsenだってlisp処理系だぞ。少なくともjavaよりは多いはず。
>>980
それで1つ。あとは?
ちょっと検索してみた
->LISP
Allegro CL
Auto-Lisp
CAL
CLiCC
CLISP
CMU Common Lisp (CMUCL)
Corman Lisp
Digitool's Macintosh Common Lisp
ECo Lisp
Emacs-Lisp
GNU Common Lisp (GCL)
Goodies for VisualWorks Lisp Interpreter
Harlequin FreeLisp
LispWorks
OpenLisp
OpenMCL
Opus
PowerLisp
PureLISP at T3X Project
S-Lisp
Wade's Common Lisp (WCL)
XLISP-PLUS
XLisp-Stat
AM scheme
3DScheme & 3DScheme Pro
Bigloo
Chez Scheme
CHICKEN
DrScheme
EdScheme
Elk
Esh
Galapagos
Gambit
Guile
Inlab Scheme
Kali Scheme
Kawa Scheme
KSM-Scheme
Larceny
LispMe
MIT Scheme
mini scheme
Open Scheme
PC Scheme
Petite Chez Scheme
Pocket Scheme
Pseudoscheme
QScheme
RScheme
Scheme 48

Scheme->C
SCM
Scsh
SECDR scheme
SIOD: Scheme in One {Defun, Day}
Sizzle
Stalin
STk
SXM
T 3.1
The Ksi Scheme Interpreter
TinyScheme
VSCM
WinScheme
HotScheme
PS3I
Silk
SISC
Skij
Scheme Applet
禿しくどうでもいい上にスレ違いの話題にマジレス・・・

>>971 (元レス)より
「メジャーな処理系が3つ以上ない言語は、言語と呼ぶに値しない」

メジャーな・・・
CLOE (Symbolics)
Eclipse (Elwood)
LispWorks (Xanalys)
Golden CL (Gold Hill)
LinkLisp (Conscious Computing)
muLISP-90 (Soft Warehouse)
NanoLISP (Microcomputer Systems Consultants)
Star Sapphire CL (Sapiens Software)
Commercial Macintosh Lisp Implementations
MCL (Digitool)
PowerLisp (Roger Corman)
Commercial UNIX Lisp Implementations
AKCL (Austin Code Works)
Ibuki CL aka IBCL (Ibuki)
Liquid (formerly Lucid) (Xanalys)
Medley formerly Xerox Interlisp (Venue)
Poplog (Poplog)
Butterfly (BBN)
Genera Lisp machines (Symbolics)
Explorer Lisp machines (Texas Instruments)
L embedded systems (IS Robotics)
ECoLisp (Giuseppe Attardi)
LILY (Roger Sheldon)
RefLisp (Bill Birch)
SBCL (W. Newman)
jlisp (Jeff Weisberg)
ALSP Embedded in ADA (Software Architecture and Engineering)
AWK Lisp Embedded in AWK (Roger Corman)
StarSim Embedded in CL (Thinking Machines)
1000取り合戦開始
990
991
992
993
994
995
996
997
3
999
the end
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。