最近Ruby厨がかわいくてしょうがない・・・
40 :
デフォルトの名無しさん :02/02/21 21:57
ときどき、大声で「Ruby!」と突然叫んでみたくなりませんか?
>>37 ARGFを使った方がスクリプトが汎用的でいいと思うんだけど、、、
Rubyのスクリプトを実行形式(.exe)にかえるツールがいくつかあるらしいので、
それを使ってもできると思う。
詳しくはどれなのかオレも忘れちゃったので、MLなどで検索してみてください。(ごめんなさい)
>>40 一日一回は「Ruby!」と叫ばないと禁断症状が現れます。w
42 :
デフォルトの名無しさん :02/02/24 09:23
Ruby!
病人が居るスレに認定
44 :
デフォルトの名無しさん :02/02/27 17:55
Rubyでオブジェクトをシリアライズする方法を教えてください。オブジェクトをファイルに保存したいんです。Googleでさがしたけど、方法がわかんないんです。
obj.dump
こっちを本スレにしよう。
>>44 ネタ?
組み込みモジュールの Marshal を使う。
50 :
デフォルトの名無しさん :02/02/27 22:38
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
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は「おまえだよ」使いに認定〜
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 成るほど。そっちを見たほうがいいのか。
ていうか既にあるのか。
じゃあ視点変えて、例えばエディタ等の
マクロ言語として使用する場合の
メリット・デメリットを教えてくれない?
非常に興味あるんだけど。
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
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
>>95 Rubyでコーディングなんてできません<(`^´)>
97 :
デフォルトの名無しさん :02/03/02 20:44
>>94 それは実用性のあるプログラムをRubyで書くのは無理だから止めた方が良いというアドバイスか?それとも実用レベルのプログラムを書けるやつがRuby界隈にはいないということか?
>90 その速度の比較だけど、比べにくくてよくわからんのだが Ruby って Emacs Lisp より遅いの? まあ lisp なんて処理系が単純だから高速であたりまえの気もするが。
>>97 単に「自分はコーディングできません」ってことじゃないですか?
実用レベルのエディタを作るのは言語に関係なく大変だろ。 既存のエディタが無数にあるのだから組み込めば良し。
101 :
デフォルトの名無しさん :02/03/02 21:01
>>92 おまえの書き込み低脳過ぎてこっちが恥ずかしくなるから
もう少し勉強してしゃべってくれませんか?
103 :
デフォルトの名無しさん :02/03/02 21:05
>>100 素直になれよ。ちゃんと認めたらどうだ。「Rubyじゃエディタはもちろんこれといったアプリケーションは何も作れません。現に何ひとつ目玉となるようなアプリケーションがありません。」って。
今の流れ、雰囲気でいくと
>>103 の方が恥ずかしいね。
>>100 誰か Emacs に Ruby を組み込んでくれないかなあ。lispでなんか
書きたくないよ。lisp は残しとくのは構わないから。
RubyじゃなくてPerlでも良いけど。
>>101 ネタにマジレスしているんだか、ネタと分かって煽っているのかよく分からないな。
ネタ禁止スレだったらごめん。
>>105 自分でやれ。俺はlispのほうが好きだ。
109 :
デフォルトの名無しさん :02/03/02 21:24
>>105 Emacsに変なもの持ち込まないでくださいね。
みんなして黙っていてもしょうがないよ。Rubyで作ろうよ、ね、エディタ。時間はかかるけどね。今のままだと、一生日陰者だよ。がんばってみんなを見返してやろうよ。絵に書いた餅じゃない、「これがRubyで作ったエディタだ、使ってみろ!」って。
WindowsアプリのマクロにRubyを組み込む為の分かりやすい キットが有ればいいのに、とPythonが組み込まれたIriaを見て思った。 どう?
113 :
デフォルトの名無しさん :02/03/02 22:36
>>111 そういえば Becky! に Ruby を組み込んだものってあったなあ。
>>110 別にそこまで卑屈にならんでもいいんじゃない?
エディタを作ってみようってのは悪くないけど、誰かが音頭をとって
ある程度たたき台を作らないとすすまないよ。
君がやってくれると嬉しいんだけど。
>>113 そんな話ばっかりでお茶を濁しているから、Ruby全体がしぼんだちんちんみたいになっちゃうのよ。
117 :
デフォルトの名無しさん :02/03/03 00:00
>>114 洩れのティムポは真のオブジェクト指向。だけど、彼女を最後までいかせたことは一度もないの。
>>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ラッパは、個人的な経験からいうとやめといたほうがよい。
抽象度のレベルにもよるけどね。漏れがヘタレだからうまくいかなかった
だけかもしれんが。
>>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てなにさ
Ruby.NETをVS.NETで開発とかってできないのかな
135 :
デフォルトの名無しさん :02/03/03 16:29
>>134 できるYO!みんな使ってるYO!現実から目を背ける力さえあれば、実現できないことなんて何もないのさ!
>133さんきゅー
@ 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が勝ってるのなんて・・・
152 :
デフォルトの名無しさん :02/03/03 20:29
RubyがPerlより優れている点ならたくさんありますよ。 オブジェクト指向であることも一つです。 それに、Perlみたいに弱い言語じゃないことも事実です。 エラー処理については、第一級レベルだと思います。
また始まったよ...
154 :
デフォルトの名無しさん :02/03/03 20:33
てっかさ、Rubyが使わないから関係ないとか、プログラマにとってたくさん学ぶことは苦痛とか行ってるけど、 Perlみたいに、堕落した言語使ってたら、人間馬鹿になって、最終的に プログラマとして無意味になりますよ。ただの自惚れじゃないんですか? それに、プログラミング言語は、それぞれ特徴があるけど、(Perlユーザーは堕落するとか) ほんとにプログラミングが出来る人間なら、大半の言語は同じようにに見えるんじゃないの? 基本的には、同様ですからね。
所詮はス(以下略
そうですね。スレ違いです。
>>154 端から見ると、どうみてもRubyはPerlそっくりだけど。
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],
つーかさ、158みたいなわけのわからない書き込み多いんだけど、 Ruby信者って普通の会話もできないクズばっかりなの?
>>160 クソをクソらしく利用してやったんじゃねえか。
勝手に決め付けんな低脳
162 :
デフォルトの名無しさん :02/03/03 20:57
>141 そういう意味ではHSPの方が成功しているという事実・・・ Rubyも世俗化してWinでexeファイルが作れるようにしろ! 言語の実装上無理か・・・
Ruby>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>158
ワーイ158がキレタ! 158がキレタ!
うわ、すげー質悪い
ちょっと冷静になろう。Ruby厨はふたことめには「Perlは汚い」と言うが、なぜその汚い言語がここまで普及しているのか、どうして考えようともしないのか。 開発者のパワーでいえば、間違いなくインターネット上でダントツ一等賞の言語がPerlだぜ。「Rubyに決定的に欠けているものが、Perlにはあるのかも...」と発想するセンスはないの?
Rubyの良さがわかんない人にRuby勧めたってしょうがないよー Ruby信者はうざいだけだよー
段々わかってきたろ?Rubyはな、Perlには勝てないんだよ。 実は、166で言ったことはほんの序章に過ぎないんだ。 本当のPerlの力とは、天才ハッカーの作者が作り出した 「Perl教」。これにある。これに入ればなにもせずに ただでどんどんお金が入ってきて、しかも願い事は全てかなうという 最強の宗教だ。さぁ、今すぐ入会を会をカイヲカイヲカイヲ
Perlの力にかかればな、まつもtなんかチョイだぜ、チョイ。指でな。 指でチョイってやるだけなんだよ。そうだ。チョイだ。 それに追い討ちをかけるかのごとくチョイとやれば、 もうRuby厨なんかチョチョイノチョイだ。わかるか。チョイなんだよ。指でな。 あとは、わかるな?
>>170 クソをクソらしく利用してやったんじゃねえか。
勝手に決め付けんな低脳
>>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
え? >たぶんRuby使っただけでいっぱしのプログラマになったつもりなんだろーな。煎ってよし。 >Ruby使う人はコンピューターサイエンスの分かってない人が多い。 >なぜなんだろう?
>>180 大筋同意だが、HSPもDelphiも厨房向けツールではない。
>>185 >なぜなんだろう?
つーかキチガイがやたら多い
>>187 つーか基地外はRubyをネタにするただの荒らしだと思われ…
٠٩٧٣هخخخخخخعف٤٣صضسيسسسسسغ(|)
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | はいはい | 取り壊しの邪魔だから出てった出てった \___ ______________ |/_____ , --、 | |._ | rubyはやっぱクソだったな! まったくだ f=+=l. | ||.R|.| ∧_∧ ∧_∧ (,,゚Д゚). | ||.u|.| ( ・∀・) ニヤニヤ (・∀・ ) ⊂ つ . | ||.b|| ( つ ( ) 〜| | 彡 | ||.y|| | | | | | | し`J | | ̄ .| (__)_) (_(_) ~~  ̄ ̄ ̄ ~~ ~~ ゴゴゴゴゴ /ゝ ┌―┐ <--Ruby / ●. ┌┘品└┐ {{ []台 | ロロ ロロ.|  ̄ ゚゚゚゚゚゚̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ \\あぼ――ん/ / (´;) /\ (;)┌―┐ / <<●(´;;;) └┐ }} []台 (;;⌒);;;) ロロ.|  ̄ ̄ ̄ ゚゚゚゚゚゚̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ―Ruby完―
>>189 こういうのがほんとの荒らし。なにいってんの?>188
Ruby以外の言語は糞。何度言ったら分かる?
∧||∧ ( ⌒ ヽ ああ、、もうだめぽ。 ∪ ノ この板で紅玉の繁栄はありえないぽ。 ∪∪
/ /. │ ヽ \ ∧ ∧/ /. │ ヽ ∧\∧ ( ⌒ ヽ / │ ヽ ( ⌒ ヽ ∪ ノ / │ ヽ ∪ ノ ヽ_),) / │ ヽ し' 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ズザー ∧( ( つ ⊂ ) \___ ∧( ( つ.) ) ) ∧( ( つ (__)_) ∧( ( つ (__)_) ∧( ( つ (__)_) ∧( ( つ (__)_) ∧( ( つ (__)_) ∧( ( つ (__)_) ∧( ( つ (__)_) ∧( ( つ (__)_) ( ( つ (__)_) ( つ (__)_) | (__)_) (__)_)
ソシテクソゲンゴニハクソスレガオニアイ
>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 で書かれたエディタなら昔からある。このスレの上のほうを見ろ。
>>208 なんだ、あるんならあると早く言ってくれよお。けど、このスレの上を読めって、そんな殺生な。どこですかいな?
>>209 志が低いのお。Emacsってエディタの最終完成型なの?エディタってものがこの後進化する余地ってないの?EmacsがLISPでそうしているみたいに、Rubyでエディタを書いて、Rubyで拡張できる、そうすればもっとすごいものができる、とか考えないの?
>211 Rubyは関係ないけど、そういうマクロで拡張できるエディタっていう コンセプトはEmacsが最終形というか、もうすでにやりすぎてるって感じ。
>>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を超えるものを作ったのか? 言いがかりにしか聞こえんが。
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使ってなければ、松本 氏の発言なんて見かけないだろう。 たんに、マイナーなイメージの割に使用者が多いので、ネタになりす い だけだと思うが。
>>228 客観的に見ても
>>227 より
>>228 のほうがずっと厨に見えるな。
Ruby厨にしろ、Ruby攻撃厨にしろ、ウザい連中につかまっちゃって
気の毒に思う俺は主に perl 使い。
>>227 板の書き込みを良く見てると
上がっているスレに満遍なく煽りレスを
入れてる人がいたりするのが分かるよ。
叩くのに理由はいらない。
何にでも当てはまるような言い方をすれば良いだけ。
それと Ruby の場合叩き方のテンプレも豊富だったり。
>>229 「って程度しか/知らないんだけど」って言ってるヤシが
「思い付くのは、」などと煽るから荒れるんだろが (゚Д゚)ゴルァ
(;´д`).。oO(ム板なのにプの字にトライすらしないやつらだろ?)
ああ、すまん。 「煽り文句として思い付くのは」という意味だ。 結論としては、煽っている奴は単なる好き嫌いを吠えてるだけということでよろしいか。
236 :
デフォルトの名無しさん :02/03/04 22:18
これまであまり言及されなかった事なんだけれど、 OOを前面に打ち出した事で低知識階級の反感を 買ってしまった。というの実際のところだろう。
237 :
デフォルトの名無しさん :02/03/05 15:08
ちょっと目を離すとすぐこれだ
>>236 00くらい知ってるぜ。00000000だろ。
OOくらい分かるだろう。。。 だれでも。
真のオブジェクト指向。 これといって何が作れるってわけでもない。 けど、真のオブジェクト指向。 それが何の役に立つのかわからない。 でも、真のオブジェクト指向。
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 ならメソッドなので、
こういうこともできるけど、ちょっと違うかな?
自分ではこんなのを使おうとは思わないが。
>>244 あぁ、だいたいそんな感じです。ありがとう。
ただ、今いじってるのは小さなスクリプトなので
クラスとか設けてないんだけど、クラスを指定してないと
alias_method は使えないみたい...。使いにくいなぁ。
>自分ではこんなのを使おうとは思わないが。
うーん、こーいう考えって Ruby には向いてないのか...
へこむなぁ。
246 :
デフォルトの名無しさん :02/03/06 07:55
Rubyってただ日本人が作ったから愛国心で みんな(・∀・)イイ!て言ってるだけだろ?
おはよう
本屋で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 またドキュソなことを。るび厨ばかにされるだけだよ。
Linuxの代替はそのころなかったじゃないか。
それにLinusやGuidoは今アメリカの会社ではたらいてるんだけど反発心で
技術のない人はどう反応したらいいのかね?
252も変だが253も何がいいたいのか良くわからん。 本質と関係ないところでくだらん議論はやめよう。 Ruby は日本以外でも使っている人は多い。正確な数は測りようもないが、 MLの流量などを見ていると日本以外で使っている人のほうが多いんじゃないか? 雑誌なんかでとりあげられるときに日本発の言語ということが(めずらしいので) クローズアップされやすい傾向はあると思う。 まあ日本人としては、作者に直接日本語で質問したりリクエストしたりしやすいって のはメリットのひとつかもしれない。ドキュメントの質や量は、もはや日本語より 英語のもののほうが上だろう。
プログラマという人種は良くも悪くも合理的なのかな? 愛国心という不合理な心理を持ち込むのがいやなのか? それとも単にアメリカ迎合主義?
多くの人に使ってもらったほうがフィードバックが多い。 それだけだろ。
>>252 一般日本人に愛国心が希薄なのは偏った戦後教育の結果。
ほとんどの国では自国への愛国心が育つような教育をするのが常識。
中国・韓国などは国家戦略として日本人の愛国心を失わせるような対日本外交を行っている。
板違いだな。
SAPIO読め(藁
>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で解凍できたよ。
>>266 zlib.soはlibz.aの間違い。
すまん。逝ってくる。
>>266-267 (´д`)ノ 激しくありがとうございます。
追って経過・結果をお知らせします。
269 :
デフォルトの名無しさん :02/03/11 00:00
Rubyスクリプトでsetuidなことをしたいのですがどうすれば良いでしょうか。 suidperl に相当するものってない?
>>269 今はない。
swap_uidの名前問題が解決したら出来るようになると思う。
>>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
279 :
デフォルトの名無しさん :02/03/13 18:59
>>278 ヘボくしたのかよ・・・。
俺が Ruby 使いはじめのとき教えてもらったのが
「yield は繰り返せるreturn みたいなもんだ」と言われて、なんとなく
納得した。
Ruby のイテレータは強力やね。
(ぶっちゃけ、もう今後 Ruby を超えるスクリプト言語は出ないんじゃ
ないかと思う。)
>Ruby のイテレータは強力やね。 なにが?
>>279 最強の言語なんてものは存在しない。不毛な話はやめとこう。
>>278 Rubyにもlamdaあるじゃん。
Rubyのメソッドは、普通の引数だけでなくブロックをつけてよぶことができます。 そのようなメソッドのことをイテレータといいますが、この名前はあまり適切では なく、必ずしも繰り返しとは関係ありません。 それはさておき、引数といっしょにメソッドに渡されたブロック部分を実行する のが yield 文です。ちょうどメソッドの中から、メソッドを呼び出した側で指定した 処理を実行させるようなイメージなのでコールバックと呼ばれることもあります。 yield に引数をつけて呼び出すと、それがブロックに渡されます。ブロックでの 引数は | | で囲んで受けます。
>>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に組み込んでプロジェクト管理&デバッグ できないと使う気がおきましぇ〜ん
291に同意。 おれはWinCVSの使い方が分からなくて、 cygwinのcvsを使っているが(w 後はDebuggerだな。deubg.rbのGUIラッパーでもあれば 良いんだが、今の所 Emacs/Meadow と RDE くらいしか知らないな。
(´-`).。oO( 291(ニクイ)ゲトー ズサー )
>>292 デバッグについては、ですね、
print を多量に埋め込む…
…諸刃の剣。
(;´д`).。oO( そか、debug.rb ですか。漏れも遠慮なく逝って来ます )
あと、標準出力に出てくる エラーメッセージは 、
リダイレクトしてファイルに保存。
(´-`;).。oO( なんで標準出力なんだろう? )
294 :
デフォルトの名無しさん :02/03/22 20:45
>>292 deubg.rbってなんだよ、おれ。
>>293 printよりはpかppを良く使う。
最近はppの方が多い。
ppは標準でついていないのが痛い。 何にしろインタプリタ型言語だと、print相当の命令を埋め込んで デバッグすることがほとんどだな。埋め込んで即実行できるからね。 Cではデバッガを使うけど。
どっかのすげー外人がVS.NETに組み込んでくれないかな。
>>296 CVSのroughにはppがあるから、
1.8くらいでは標準で付くんじゃない?
今のdebug.rbはかなり遅いから、
基本はp,ppでデバッグして、
debug.rbは必要になったときだけ使うようにしている。
>>299 ありがとー。なんて親切な人なんだ。試してみるよ。
プログラミングは、Perlがある程度できるだけ、という人に Rubyの本を何か一冊薦めるとすればどれ?
そもそもperl知ってればrubyに手を出さないと思われ
>>302 同じくその本(プログラミングRuby)を薦める。もうちょっと初心者向きだと
オーム社の「Rubyプログラミング入門」かな。
>>303 そんなことはないでしょ。
実際俺は Perl をかなり使い込んでいたが Ruby に乗り換えた。
305 :
デフォルトの名無しさん :02/03/24 12:06
306 :
デフォルトの名無しさん :02/03/24 12:24
>>305 そうです.
英文読んで気に入ったら,本を買うのがよろ紙
#本であると使いやすいしね
日本で作られた言語なのに、英語による本のほうが良いというのは いかがなものか? やはり英語圏の人のほうがユーザが多いってことか。
英語圏というか、 欧米圏だろ
Rubyの詳細について知っていて、かつ書籍を書ける人が 日本にいなかったということでは。 文章を書く能力とプログラムを書く能力は 一致しないでしょう。 今では 英語圏ユーザー > 日本のユーザー ですね。 ruby-talk, ruby-list の流量の差からもわかると思います。
ruby-talk はしょうもない質問や議論も多いけどね。 ruby-list の敷居の高さに乾杯。
311 :
デフォルトの名無しさん :02/03/25 04:50
いるとは思うけど、著者がすっかり定着してしまったように感じる。 話題も偏っている?
Ruby使いかけたけど、ライブラリの質が低いからやめちゃったよ。 標準添付のライブラリ使えなさすぎ。 英語圏の人が増えて改善されてるの? ruby-talkの流量が多いのはusenetと連動してるからだよね。
rubyのオブジェクトって参照カウンタ使ってるの?
def f(i, j) i + j end f(1 ,2) が通らないのって仕様?
改行すんなよ
>>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スタイルでも第一引数は特別扱いしないと いけないし。
なるほど、ためになりました。 もともとは 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 などと同じ方式です。
>俺は標準ライブラリはあまり使わないので、 それって標準と同機能の代替ライブラリ使ってるって事? それとも標準の機能そのものが不要って事? 前者なら思いっきり不満って事では...
>>327 後者。
俺はRubyをテキスト処理に使うことが多いから、
組み込みクラスのArray,Hash,String,Regexpくらいが
あれば、大体事足りる。
よく使うのは nkf と getoptlong くらいか。 後は組み込みクラスで大体足りるんだよね。
なんか宣言が無いのが素晴らしいそうですが 宣言ってなんであったら駄目なんですか?
>>330 (´−`).。oO( 自称「VB使い」に対する敷居を低くするため )
宣言は面倒だからお手軽系言語では無いにこしたことはないとは思う。 Rubyにはもともと変数に型は無いので型宣言は不要だし、 $ や @ をつけることでスコープを決められるので基本的には 宣言はいらない。 しかし、宣言を排除することに固執するあまり(?)、ブロックの部分での ローカル変数のスコープ規則が複雑になっているように思う。かといって あまり良い代案は思い浮かばないのだが。
>>321 CGI関係。結局必要なものを全部書き直した。
あとストリームがほしいよ!
>>334 ruby標準添付の cgi.rb は、よく言われていることだができが悪いね。
あんなものを添付するなって感じだが。
Rubyには興味あるけど、ここの板の信者が馬鹿過ぎて使う気に ならないんだよな。こんなところで馬鹿やってるくらいなら、 アプリケーションの一つでも書いた方がよっぽどRubyの為に なるとおもうんだけど。
>>325 rubyunit, pp, rdoc と、RDtool に必要な全ライブラリは
1.8 で入る。RDtool 自体も入るかも。XML パーサはどれを
つけるか dev で議論中。いまのとこ REXML になりそうな
気配が濃厚。そのほか stringio とか iconv とかいろいろ
入るよ (入ったよ)。
>>336 ネタにマジレスかもしれんが。
ここで馬鹿やってる奴らは信者じゃない。
むしろ逆で Ruby の評判を落とそうとしているだけ。
336 みたいなこといったら奴らのおもうつぼだろ。
つうかそんなことも見抜けないなら 2ch なんかにこないほうがいい。
むしろ首釣って死ね。
>>338 ああ、誉め殺しか。なるほど、済まなかった。
2ch歴はもう2年近くになるけど、関心がそれ程
ないものには騙されてしまうんだな(w
というかアホスレ立てるやつってなんなんだ?
Perl信者?ま、どうでもいいか。とにかく
アンチがこんなに沢山いるとは思わなかったよ。
>むしろ逆で Ruby の評判を落とそうとしているだけ。 そこまでの考えも無く、単に叩かれているから叩いてるだけだろう。 特に、Ruby は最近有名になったから、 出る杭は叩くの精神が働いている。 まあ、隙が多いのは確かやね。
また糞スレが立ったよ...いい加減にしてほしいな。
>>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の略だと思ってた
>>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 とかのほうが好き。
>>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
371 :
デフォルトの名無しさん :02/03/30 23:14
sage 藁藁
373 :
デフォルトの名無しさん :02/03/30 23:28
も1つsage 藁藁
荒れ荒れ
>>374 Rubyは好みではないが、眼鏡っ娘はヨい。
377 :
デフォルトの名無しさん :02/04/01 07:25
>>376 Ruby は好きだが、眼鏡っ娘は嫌いだ。
>>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
デスクトップリファレンス(O'REILLY)はいいよ コンパクトで安い割に内容が入ってる リファレンスなんだから当たり前だが
>>387 あれだけを読んで、全くの初心者が
Rubyを使えるようになるとは思えません。
あの2つはPerlやCである程度のプログラミングの経験がないと、
読むのは難しいです。
Perl 知らんけど、一度リャマ本読んだほうがいいかなぁと思っている。 # 誤爆じゃないよ。
>>386 そうです。
>>367 のリンク先にもあるんですが、Davidの連載で取り上げられて
います。Haskelマンセーではないですが、Rubyのメソッドはなかなかエレガントに
書けないですね。
>>390 Rubyからはじめた人がPerlやってどう思うのか興味あります。
>>391 Perl は覚えなければならないことが多い気がしました。
特異メソッドってどういう時に嬉しいのでしょう?わかりにくくなりませんか? クラスメソッドは嬉しいのはわかりますけど。
395 :
デフォルトの名無しさん :02/04/09 11:00
Pyrex の ruby版が欲しい。すごく欲しい。誰か作ってくれないかな。 というか 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のスレってどこかにあったっけ?
404 :
デフォルトの名無しさん :02/04/13 07:53
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
やってみたけど dir.c でエラーでまくって 途方に暮れました(´Д`)
410 :
デフォルトの名無しさん :02/04/17 00:22
あの〜、rtagsを実行すると、 TAGSファイルができるときと、永久に処理が終わらないときがあるのは、 なぜですの? rtags用のスクリプトの書き方でもあるの? 教えてください。 ruby 1.6.7 (2002-03-01) [i386-cygwin]を使ってます。
ぷち ぷちって あり殺すのやめろよなぁ かわいそうだろぉぉぉー たーいせつな 命だからなぁー
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を使えばいいのですか」とか作って。
ふつー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 >Smalltalkの特徴ってRubyで実装することは可能?
こういう風に、なんでもかんでも取りこもうとするのって
なんつーか、厨房的発想だよな。
Ruby/SDLでジョイスティックの十字キーが片側に入らねーぞゴルァ。 片側に入れると -32768 になるはずなんだけど、FIXNUM だっけ? が、 31 ビットだから、MSBが欠けちゃってるとか?
>FIXNUMだっけ? が、31 ビット そんな仕様だっけ
>>433 今SDLのソースが手元にないんでわからないけどさ、
もし本当にそのセンなら、Ruby/SDLのソースを
INT2FIX → INT2NUM
FIX2INT FIX2LONG → NUM2LONG
に機械的に直せばいけると思うよ。
>>435 いちゃもんつけてしまったけど確認してみたら、
ちゃんと INT2NUM になってたなぁ。
おれのジョイスティックが逝かれてんのかなぁ。。。
>>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で出来るのでしょうか?
ここで聞かず、作者に聞け。
>>449 Symbolって、:foo みたいのだけど知らないの?
シンボル毎にユニークな番号が振られる。
455 :
デフォルトの名無しさん :02/05/04 20:05
Ruby最高と言っている友人はロッテファンで ロッテ最強と言っている。
>>455 Ruby最高と言っている漏れは阪神ファンで
阪神最強と言っている。
星野阪神マンセー!!!!!!!!
457 :
デフォルトの名無しさん :02/05/05 05:27
まつもとさんって田舎育ちだよね? なのになんであんなにコンピュータに詳しいの?
>>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
開発者の一人ではあるでしょ。作者ではないが。 PragmaticProgrammers は米国での第一人者だし。
というか、Mac OS XにRuby標準搭載のソースきぼんぬ。 どこにあるのやら〜。
>>466 RubyCocoaとの関係とか、気になりますです。
考え過ぎかな。
468 :
デフォルトの名無しさん :02/05/09 16:29
Rubyまたあたらしいのがでましたね。 先月2冊出たばかりだったのに。 いつまでこの新刊ラッシュは続くのだろう。
昔はRuby本全部集めてたけど、 最近は全然ついていけないよ。
集めんなよ。 なんか意味あんのか?
474 :
マルチポスト :02/05/09 22:27
>>473 472ではないが、、、
本の著者に金を貢ぐことは、
それなりに意味がある行為だと思う。
開発に対する参加の一つの形、だろ?
私怨カッコ悪い
478 :
デフォルトの名無しさん :02/05/11 21:11
>>487 よくできているものが既にあるんだったら、何も同じようなものを作らなくたって
いいじゃん。
車輪の再発明って言葉知ってる?
アホですか? ネタですか。
何もRubyスレに誤爆しなくても。
483 :
デフォルトの名無しさん :02/05/11 23:38
この先の487が、同じようなものを作れ!っていうレスだったら問題ない。
484 :
デフォルトの名無しさん :02/05/11 23:39
>車輪の再発明って言葉知ってる? 車輪よりいい物を作るにはどうするか知ってる?
485 :
デフォルトの名無しさん :02/05/12 00:32
なんだか車輪の再発明でスレまでたってるな。
>>485 上げるな
この板アラシまくってるぞ ソイツ
まー荒らしってほどでもないな。他の板に比べれば。
まあ再発明している暇があったらもっと別なことに時間を使えってこった。
cgi.rbが作り直されるみたいだけど今度のはどうよ?
HTML 生成機能は必要ないな。 量にあわせてヒアドキュメントか erb のどちらかで済ませるから。 セッション管理がもう少し使いやすくなると吉かな。
>>491 おなじく。HTML生成機能はいらない。今のも使ったことないし。
互換性のために残すのはいいけどね。
493 :
デフォルトの名無しさん :02/05/13 10:19
494 :
デフォルトの名無しさん :02/05/21 00:17
本スレをageとくか。
495 :
デフォルトの名無しさん :02/05/21 00:35
Programming Ruby のドイツ語版が出るらしい。
>>493 それをいうなら freshmeat.net にも The Ruby Way の記事が出ている。
やはり海外のほうが評価されているのか。
>>496 >やはり海外のほうが評価されているのか。
海外には馬鹿が日本と比較にならないほど沢山いるからかな。
>>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
になるんだけど。
勘違いしてた。
>>500 Lispのletとかと同じ。
ブロックでの|n|は代入じゃなくて定義。
スコープが違えばトップでのnは壊れないんだよもん。
def f(x) hoge = x end hoge = "namahage" で、f()をいくら呼び出してもトップのhogeの値が変わらないのと同じだね。 f("わるいこはいねぇがぁ"); print a #=> namahage f("なまはげはいねぇがぁ"); print a #=> namahage
最後の二行にある「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
>>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では「名前をつけました」の意味が違うということ。
>>508 おぉ!! すっきりしました。ありがたう。
ブロックを含めた変数のスコープが分かりにくいというのは前から言われてるね。 matz を納得させられるほどの代案が出されていないのでそのままだけど。 後方互換性がなくなるしね。
age
つまりRubyは糞ってことでいいですね?
>>509 どこがすっきりするんだよ。
>>508 の発言は、命名の意味の違いについての知識に酔っているだけにしか見えんよ。
なんでラムダ式の引数の命名にスコープ外の名前衝突を意識せねばならん?
それを意識させるストレスより、今の仕様の方が良いとする理由・事例は?
ちっともすっきりしないだろ。
>>516 > どこがすっきりするんだよ。
いや、とりあえず納得する理解はできたということで。
名前とオブジェクトは関係無いし。
> なんでラムダ式の引数の命名にスコープ外の名前衝突を意識せねばならん?
ラムダ式みたいに勘違いしやすいけどラムダ式じゃないんでしょ、たしか。
> それを意識させるストレスより、今の仕様の方が良いとする理由・事例は?
俺も変えて欲しいとは思うけどね。
マンセーとは書いてないでしょ?
つまり「すっきり」はしてないということで。
Ruby の仕様は「すっきり」してないけど、 500 はこの仕様を理解するうえで変にこじつける必要がなく ちゃんと納得できたので「すっきり」したって事でしょ。
>>516 煽りじゃなく、どういう仕様ならすっきりするか是非教えて欲しい。
521 :
デフォルトの名無しさん :02/05/23 09:22
捨てる。
>>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|}
というのがあって、これはブロックの外にあるローカル変数へ
値を代入していますが、こういう使い方は良くない、
ということですね?
>>523 それは何をやってるの。直観的によくわかりませんれす。
同じことをやるのに
debug = q.on('-d', '--debug', 'debug message')
というようにonは定義できないの?
また勘違いしてた……。 ごめんなさい。
527 :
デフォルトの名無しさん :02/05/24 00:19
528 :
デフォルトの名無しさん :02/05/24 00:28
529 :
デフォルトの名無しさん :02/05/24 00:32
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
ないよ。
536 :
デフォルトの名無しさん :02/05/24 01:47
>>533 ヤフー(海外の方)で検索してみな。
キーワードを増やす時は +key みたいにすればOK。
>>533 あなたがどれくらいのレベルか知らないし、どのくらいの規模のものを要望しているのか
わからないのだが、標準配布の中の sample ディレクトリの下あたりをまずは見て
みるのが良いんじゃない?
>>524 いやまあ、わかりずらいのは理解できます。僕も最初ピンと来なかった。
> q.on('-d', '--debug', 'debug message') {|debug|}
この場合、オプションに -d か --debug が含まれていると
debugにtrueを入れます。
> debug = q.on('-d', '--debug', 'debug message')
> というようにonは定義できないの?
使う側がメソッドを再定義すればなんとかなるでしょう。
ちなみにonメソッドの戻り値はselfです。
×わかりずらい ○わかりづらい
×ちなみにonメソッドの戻り値はselfです。 ○ちなみにonメソッドの引数はselfです。
>>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| } と似たパターンだと思う。
>>540 指摘感謝。
>>541 あれ、まちがってますか?
>>544 そういう意図があるのはわかります。
ただ
>>524 さんは「onにブロックがなければ戻り値にオプションの設定値
が帰ってきても良いんじゃないの?」って言っているように読めたんで
あのように書きました。妄想だったらスマソ。
>>545 >ただ
>>524 さんは「onにブロックがなければ戻り値にオプションの設定値
>が帰ってきても良いんじゃないの?」って言っているように読めたんで
ああ、なるほど。納得。
ブロック内で宣言された変数の寿命はブロック終了まで、
という自然な考えに反する使い方だと。
テンポラリ変数がブロック内に属するかどうかは考え方次第っぽいが、
確かに、それ以前に宣言されていたときだけ生き残るってのも半端だしな。
Rubyっていいよね。慣れれば楽だし。 プラットホームを絞ってくれればヨカッタのに。それだけが残念。
>>547 プラットフォームを限定するとどういいの?
>>548 日本人は限定品や限定モデルが好きだから
プラットホームを限定モデルにすれば
利用客が増え、本数も増やせるんだろ
でも、限定モデルは、ホームとの隙間が
大きく空いてる所があるから、要注意な
543-544で意味わかりました。
意味はわかったけど、そういうことができるから良いとは言い難いなあ。 激しく解り辛いことは確かだし、 q.on('-d') {|v| debug = v} でいいじゃんか。
>>551 q.to_sで--helpの時の表記が取得出来て便利だろーが。
553 :
デフォルトの名無しさん :02/05/25 12:29
書籍 Ruby de CGI 発売age
>>551 実際の話「わかりづらい」とか
>>549 さんの「自然な考え」というのが
ピンと来ないのは多分僕だけですかね。Rubyがそういう仕様なら
それなりに使おうとしてしまうので、気にならないのかも。
Ruby 2.0とかでこの辺が大きく変化したりしないかな。
メジャーバージョンが上がれば割り切って作ってもらえそうな
気がしますが。
>>555 書いてから色々気付く。うつ。
> q.on('-d') {|v| debug = v} でいいじゃんか。
初見で「vはブロック内ローカル変数なんだな」と想像できるのは、
過去にそういう言語を経験したことがある人のみではないか、
ということです。逆に最初にRubyを憶えてから他の言語を使う際には
逆の問題が起きたりしないのかな、とも思いますが、
そんなことない?
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. あえてこの仕様 のうちどれなのかな。
>>558 3だったらヤだなと思ってたので1+2ってことで安心しますた。
560 :
デフォルトの名無しさん :02/05/26 04:13
Ruby に Java でいうところの JDBC API みたいなクラスライブラリってありますか。 おすすめのものがあれば教えてください。
562 :
デフォルトの名無しさん :02/05/26 11:47
563 :
デフォルトの名無しさん :02/05/26 19:35
>>522 print n の n が、引数で使われているか否かでブロックローカルかそうでないか
変化するのね。
>>563 そういうこと。
ブロックの引数名は、そのブロック内での役割を示す簡潔な名前を付けるべきで、
外スコープのオブジェクト名とぶつかっているかどうかなんて、考えたくない。
例えば、hash.each {|key,value| ...}とスラスラ書くのに、
keyやvalueという名前が外側にあるかどうか気にしなくちゃいけないなんて鬱すぎ。
もし本当に外側のkeyやvalueにブロック内で代入したい場合には、メソッドの肥
大化を疑うつもり。
>>556 なんにせよ、[必要なら]その言語の仕様は覚えなくちゃ。
例文を「a = b = '1'」としよう。
初見で「aとbにオブジェクト'1'への参照を与える」と想像できるのは、
過去にそういう言語を経験したことがある人のみではないか、
ということです。
…というのと同じではないのかな?
>>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の次のメジャーバージョンアップでは、ブロックの引数はブロックローカルに
もできるようになるって話は出てたよね?
>>572 え、マジレス(というほどのものでもないけど)しちゃだめでしたか。失礼。
>>564 メソッドが肥大化していなければ、ブロック内の変数とその外側の変数名の
衝突なんてしないというか、すぐ気がつくと思われ。
575 :
デフォルトの名無しさん :02/05/28 23:46
なんか、ブロック引数のスコープがブロックローカルでもそうでなくても、 n.each{|n|...} という書き方はよくないと思うなあ。他人が見るとはまりやすいし。 C言語で n = n++; と書くのと似たようなものというか(w
どういう書き方ならよい?
>>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 が良い事言った。
583 :
デフォルトの名無しさん :02/05/29 21:02
>>579 正直 ruby を使う気なくしました。こんな仕様は非常識ですよ。
所詮学の無い作者のオナニー言語です。 気に入らないならさっさと他の言語へ行くか、作るかしたほうがいいよ。
>>583 ブロック引数のスコープの仕様だけ変わったって使う気無いくせに、いちいち
ageてまで書くな。
>>580 そう書くと現在の仕様でも納得できる気がちょっとしてきた。
>>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 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
あ、できた! ありがとうございました
>>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 うーんとさ、それは他の言語でも閉包ってのはそういうものだから… lispなんかでも (setq a 8) (setq prc (lambda () (setq a 3))) (apply prc ()) =>3 a =>3 になるし。文句はあまりでないと思うが。
Ruby初心者にやさしい本は何がありますか? スクリプト言語は初めてです。
>>591 はoccur freeな変数が関数オブジェクトでは
認められるということを
問題にしているのではなかろうか。
察するに。
無知なくせにでしゃばって恥をかいた悲惨な
>>591 がいるスレはここですか?
605 :
デフォルトの名無しさん :02/06/01 10:15
Web 開発に Ruby 使おうということを上の人に説得したいんだけど、 提案に役に立つまとまった資料、文章とかないかな。ポジショニング マップとかが書いてあって説得力のあるものが希望。
606 :
デフォルトの名無しさん :02/06/01 11:32
>>583 あなたは幸せものです。
世の中にはもっと酷い言語を使わされている人が沢山いるのですよ・・・?
無知なくせにでしゃばって恥をかいた悲惨な
>>591 がいるスレはここですか?
609 :
デフォルトの名無しさん :02/06/01 13:10
PerlとRubyのいいところだけを統合させた言語きぼんぬ
アホな機能満載のクソ言語スレはここですか。
>>610 ちょっとまった、rubyのいいとこってどこよ?
613 :
マジレス遺体 :02/06/01 16:17
>>616 どうでもいいけど、あんたが112のはずはないんだが。。。
>>611 作者やコミュニティがアホだから、他の言語の良いところを持ってきたつもりが、
いつのまにかrubyアホ機能その1に成り下がってるんだよね。
>>620 はじめて読むならプログラミングRubyじゃないか。次にRubyアプリケーションプログラミング。
両方読むのがおすすめ。
とりあえず『プログラミングRuby』を買ってこようと思います。 Rubyをはじようと思った動機は、日本語に対応した正規表現を使いたかったから という単純なものだったのですが、Perl以上にスイスアーミーナイフな感じで、 期待が持てます。(本家のホームページは (´・ω・`)ショボーン ですが・・・)
625 :
デフォルトの名無しさん :02/06/02 20:24
>>601 オーム社の Ruby プログラミング入門か、最近出たたのしいRuby(だったっけ?)
くらいかな。
スクリプト言語がはじめてでも、他の言語である程度の経験があれば、
>>620 に
でているプログラミングRubyでも良いと思う。
Ruby本を2日以上、家に置いておくと、家族に不幸がやってくるぞ。 早く、捨てれ。
>>625 >オーム社の Ruby プログラミング入門か、最近出たたのしいRuby(だったっけ?)
この2冊はけっこう性格違うよ。
原さんのは「入門」な割には詳細に書いてあり、高度な話題も
チラホラある。あまり経験が無いと消化不良になるかも。良書ではあると思う。
導入として「たのしいRuby」を読む事は決して無駄にはならないと思うよ。
入門とか、たのしい、より、 拡張ライブラリや、組み込みRubyの本でないかな。
rubyを組み込んだ実用的なものというとmod_rubyくらい?
そういうことではなくて?
>>629
というか、俺は情報系の知識が無い初心者なんだけど、 以前「入門」を読んだ時は、読むには読んだけど いまいち理解できてなかった。 で、全然 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でブロック引数のローカル化の話が出てますね。
昔の動作を {<arg> ...} にしてくれたらいいのにぃ。 ま、互換性の点から無理だが。 # <arg> はダサいな。[arg] というのはダメ? # 複数あれば {[arg1, arg2] ...} となるけど。
256本の racc のやつは難しいですか? C は知りません。Ruby は原先生のと「たのしい」だけ読んだ事あります。 他の言語も殆ど知らないと同じです。 次に何を読もうか迷ってるんですよね。 プログラミングRuby は、そのうち買うつもりだけど、 たてつづけに解説書だけ読んでても面白くないし、実践的な事しないと。
>>638 それはArrayの即値と見なされるのでだめ。
>>639 無道編はコンパイラコンパイラの入門として面白いと思う。
どうしても言語処理系を作りたいのでなければ、
『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 はこれ以上
進化しなくても、構わないとは思う。)
>>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割は、バージョンアップによって仕様が変わったんだから、ソース変えろや!そのまま動くと思うなんざ甘いんじゃゴルァ!ということで。
|この中で|すでに宣言された変数使った方が新しい変数作らなくていいから 都合のいいこともある。
>>672 新しい変数作らなくていい == 都合がいい、の?
新しい変数作らなくていい == 手短に記述できる、なら解るけど、
>|この中で|すでに宣言された変数使った方が
は、スレ上流で言われているように、「解りにくい」。
ブロック引数がローカルスコープになって外と同じ変数名を使ったほうが わかりにくいプログラムになる気がする。
676 :
デフォルトの名無しさん :02/06/11 00:49
代入(=)が or/and よりも結合の優先度が高いというのに気付かなくてはまったのでメモ 例: x = true and false
>>675 外の環境を破壊しない事が保証されている方が安全でそ。
そりゃPerlからの仕様だ。 もひとつ、or/andは同じ優先度だってのも覚えとくべし。これはshといっしょ。
>>677 同じ名前で別のものを指すのは混乱の元じゃないか?
>>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 の分かりやすさ(==メンテナンス性)の方が大事だと思うので、 ローカル化に一票!!
>>685 同意。678の前半はただの余計なお世話だから気にしないように。
既存のプログラム掻き集めてきて、 どのくらいが影響受けるか調査すれば ローカル化への道も開けるか?
とりあえずruby-dev 講読してない人のためにも ruby-list や ruby-talk で聞いてみたほうがいいと思うが。 是非変更してほしいな。
変数を宣言する仕様だったら問題なかったのに。typoもチェックしやすいし。 var i a.each_with_index do |var e, var i| end
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 ま、||の意味を現行のままにできたらと
松本さんが思うのも当然でしょう。
困るのは(一部だけど)ユーザなんだから。
でも俺も <> は嫌だな。絶対に || の意味を変えてほしい。
>702 その方が明示的でいいと思うんだけどなぁ・・・ そんなに内と外を一緒にしたいならグローバル変数でも 使えばいいんじゃない。
>>707 >>704 の <x, y; a, b> (ちゅうか、|x, y; a, b|ね)
じゃだめなの? 俺はこれでいいかなと思ったんだけど。
# もしかして Haskeller?
>706 まあ、幸い(嫌みではない) Ruby は未だユーザも 少なくて、そのユーザも状況を理解している人が 多いだろうから、今から過去に縛られて変な構文を 持ち込むより、シンプルで自然を貫いた方がいいと思う。
>708 確かに |x, y; a, b| も悪くないと思うけど、とってつけたような 感じは否めないと思うんだよね。
>>710 表記としてはとってつけた感はあるかも。
でも Ruby では気楽にプログラミングが出来る事が重要でもあるのだから
やたら面倒な記述が必要というのも困りそうだね。
別のスッキリした表記法があればいいんだけど。
で、return value しか使えないとなると、next とか redo みたいな
のが使いにくくなるんじゃないかなぁ。
# プログラミングのスキルは初心者な奴が書いてるので、あまり本気で
# 相手にしなくていいです。
>711 とってつけたと書いたのは、見た目の問題だけじゃなくて、 他ではいわゆる変数宣言というのを廃しているのに、ブロック ローカルだけ宣言ぽいことをするのも、とってつけた感じが するからなんだけど。 で、簡潔な記述が要求される局面と云うのは、小規模な script だろうから、グローバル変数を使っても良いだろうし、大規模な script なら、多少記述が面倒でもスコープの管理が厳格な方が 良いんじゃないかと思う。 あと、 next とか redo とかは確かに困りそうだけど、いっそこと next value とか redo value と云うふうに拡張しちゃったらどうかね? #なんか、自分で書いててネタだかマジだか分からなくなって来た(^^;
>>712 自分が慣れてるのは elisp ですが、これは
defvar しなくてもいきなり setq で変数に代入できます。
let で局所変数を利用する事もできます。
特に不自然だと思った事は無いですよ。少なくとも自分は。
next value とかの利用法がどんなのか想像できないのですが、
return value しか利用できないとなると、
a, b, c, ... = hoge.each{ ... }
としたときの左辺が凄い事になりそうです。
# うーん、純粋な関数型言語使ってる人の意見を聞いてみたくもある。
## 初心者な俺がスレを占拠していいのだろうか。そろそろ去らなきゃ。
>>712 next value とか redo value が意味があるかどうか疑問だが、
break value は1.7では使える。
>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とか。
>>716 #うーん、ちょっと話題がこんがらがってるようですが
自分が next や redo の場合が云々と書いたのは
hoge.each{|x, y| ...}
の case を考えてでした。
proc の場合と each のような場合を一緒くたに話題にしてすみません。
# あと、proc で redo とかできましたっけ? ruby -v #=> 1.6.5 の irb では
# エラーになるのですが。
>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なんかはそうだけど…。
>>721 あ、それは実行できました。
>>716 の f = proc... を irb では error になったけど。
>>722 (let ((hoge hoge))
...)
という奴ですね。
hoge という変数に変更を加えても let を抜けると元通り。
でも
>>719 のは読みにくい気がしました。するなら
{|x, y; n = n| ...} みたいな感じにして
外部のを参照しているのかパッと分かるようにするとか?
# うーむ…。
>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
こんなの示されてしまうと ;(
>>704 どうもです。
現状の上に機能追加、ということか。
>>702 問題がそれだけなら、C++の「::hoge」のような感じで、
外の変数を明示的に参照するようにすればいいのでは。
それはネストしたときに途中の変数を指定できない
>>733 記号を重ねたり。
?hoge = 1 # 一つ上
??hoge = 1 # 二つ上
だめ?
他には、 ?hoge # メソッドローカル 1?hoge # 一つ上 2?hoge # 二つ上 かなり痛い事を言っているのかもしれない。
>>734 いやん。いちいち数えなきゃダメなんて。
やっぱり let してない物については外を参照できるというのが
いいんじゃないかしらん?
>736 数えるのがいやなときは *?hoge ってのはどう #おれもイヤかも(^^;
elisp で
(let ((hoge hoge))
...)
というのが使えると便利な事があるのは、
1. emacs は dynamic scope であり、
2. それぞれの変数名には決った役割がある
からですね。
たとえば一時的に hoge-hook に add-hook して
ある関数を呼びたいとか。
それに対して Ruby ではせいぜい組み込み変数ぐらいだから
この必要性はグッと低い。無理にこんな事できるように
する必要は無いのでは? と思いました。
なので
>>712 みたいなのを積極的にサポートしなくても
よろしいのでは?
失礼。
× なので
>>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(名前忘れた)」の和訳は出ないのかな。
>>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を始めたのですが、どうも変数への最初の代入が変数の宣言となる仕様は 少々気持ち悪いのですけど、慣れるものですかね? 明示的な宣言があったほうが、変数名の打ち間違いも簡単に見つかるし、 わかりやすいと思うのですが。 なんかバカなこと言ってたらごめんなさい。
宣言してても打ち間違えるとメソッドと見なされる罠。 動的な言語が嫌ならPascalでも使えば? 自分に合うものを探したほうがいいよ。
動的束縛よりも、Rubyにはいくつかのトラップがある。 関数オブジェクトが実際には「関数」オブジェクトではないという罠。 Smalltalkばりのブロックであるかのようでいて Rubyではifやwhileがオブジェクト指向的枠組の中に回収されていないため、 CやPascal等のブロックと混合してしまうという罠
混合 ⇒ 混同
759 :
zeus.eonet :02/06/19 23:05
Net::HTTPで200 continueを処理するにはどうすればいい?
>>754 一生かかっても慣れません。
あきらめなさい。
HTTPレスポンスで200はOKだが。 rescue Net::HTTPInformationでredoするとか?
とあるディレクトリ以下のファイルリストを保存しておいて 更新された場合にそのファイル名を返す・・・・ というスクリプトを作りたいんですが何か参考になるスクリプトやヒントぷりーず。
>>764 Find::find でファイル検索して、
ファイル名をキー、File#mtime を値にして dbm に格納でいいんじゃない?
766 :
デフォルトの名無しさん :02/06/21 06:46
Rubyのすばらしさを俺に語ってください
>>764 ディレクトリってローカルのディスクのこと?
次のRuby本に望む話題をあげてください。
このスレでも時々書かれるような、 ちょっとした機能や用途の為の小さなコードを集めた書籍、 みたいなものは欲しいなと思う時があります。
>774 今日、神保町の三省堂で The Ruby Way を立ち読みしたけど、 英語の解説より Ruby の script の方が理解しやすかった(^^; そういう意味では、日本語訳でなくても良いのではないかと思った。
>>746 あ、そうか。
findは最初の1つで打ち切るから軽いと思ってたけど、
grepは===だけだからfindより軽い場合もあるのか。
>>777 だれか kylix に移植してくれんかのう。
IDEの類は使わない
>>777 リファクタリング機能がほしいね。
あとは、UnitTest 支援機能。
イテレータて 繰り返すメソッドのことですか?
so
783 :
デフォルトの名無しさん :02/06/28 19:23
繰返子
それ、なんて読むんだ?
「くりかえし」 じゃない?
繰り返しが無くてもイテレータなのですか?
というような語弊が出てきたので、 今はブロック、ブロック付きメソッドと呼ばれている。
なるほど ありがとうございました
790 :
デフォルトの名無しさん :02/06/29 01:14
>>788 ブロック付きメソッドって呼び方は一般的?
Rubyプログラミング入門ではそう読んでいた。 全言語のページからブロック付きメソッドを検索しました。 約67件中1 - 10件目 ・検索にかかった時間0.09秒 Ruby のページだけ拾えて便利か?
もうおしまいだな
>>792 無理か…
eclipse の Ruby サポート状況を調べてみるかな。
日本では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ではないが、 > 特別なことしたいのなら違いをつけなきゃ。関数を変えるとか引数 > を変えるとか。 これが理解できないなら黙ってろ。
>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
昔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 にブロックを渡した場合。
>>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できるの?
tkは使えるのですか? windowsでRuby+GUIプログラミングしてみたいです。 Rubyともひとつtcl/tkも入れないとだめなのかな? まあ、気軽にぼちぼちやっていこうと思ってます。
>846 「書け、然らずんば、去れ」という感じでしょうか。 もうちょい、このままでつづけてみます。 ポチポチと書いてはみるものの、 なにせ初心厨、今だなお足元覚つかず、 うーんと不安を募らせることも多々あり、 暗き道筋照らすロウソクがもう一本も欲しいかなと思った次第でして・・・。 お手間取らせて、スイマセン。
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で作るつもり。
>854 ありがとうございます。 ちと高い本なので、まずは本屋へ立ち読みに行ってきます。 「たのしいRuby」だけでは少々心許ないですし、 かといって、初心者にはWEB上の情報はなかなか見つけづらく、読みづらく、 やっぱ本が欲しかったのです。 >855 確かに。 ただ初心者なんで、用の無い代物を用の有るモノにしていく途上ってことで、ご勘弁願いたいです。 流れから外れたカキコでゴメン。
862 :
デフォルトの名無しさん :02/07/27 03:11
>>850 WindowsならApolloがよいと思われ。
Windows上のGUIでThread動いた人いる?どうやった?
>>865 cygwin版なら動くらしいけど、あれはWindows上というのかなあ。
>>865 ASRは使えると思うが。
他のもできそうな気がするが、反応が鈍かったりするか知れん。
最近、教祖まつもとの態度がでかくなった気がするが、気のせいか?
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には文字列の連結に
何か特別な書き方があるのでしょうか。
初心者ですが、よろしくお願いします。
で、おそらくSJISに変換した結果、シェルで誤って解釈されるコードが含まれてしまったのではないかと想像してみた。
874 :
デフォルトの名無しさん :02/07/30 13:17
サンクス>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
#!/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 ああ。
自分ならとっくにブチキレてるな。
881 :
putsと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 だったりする?
zshはプロンプトを行頭から表示するらしいので、それに消されてるんだろう。
~/.zshrc あたりで unsetopt promptcr しておけば消えないはず。
886 :
putsとprint :02/07/31 20:45
なんか全然rubyの話題じゃないよ。
888 :
デフォルトの名無しさん :02/08/01 00:39
exerbでApolloごとexeファイルにできますか?
>>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]になんとかいってやってくだちい。
896 :
putsとprint :02/08/02 22:27
オブジェクト変数とはオブジェクトへのポインタですか? クラス内でしか利用できないのですか? クラス内にスコープを持つ変数が使いたいです。プロパティのように。
>>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って、ありますか?
あ、またまた失礼。上のinitializeメソッドで@bar初期化されました。 私のコードに打ち間違いがあったようです。 英語のProgrammingRuby読んでたらinitializeがinitializerになってる んだもんなぁ・・・。
ま、あとは分かんないことがあったらここで聞いてみるとか。 ここしばらくネタもないし。
>904 探したけど、ないなぁ。本探す方が良いかもしれない。 メソッドの呼び出し形式は関数形式とレシーバ形式があるようですが、これは Integer(3.14) --- 関数形式 Kernel.Integer(3.14) ---レシーバ形式 でよろしいの?
910 :
putsとprint :02/08/04 12:16
=**=<<= *=>>= +=/=&= -=%=|= .=x=^= rubyに上記の演算子を追加させる モジュールってありますか? .= がツカーイターイのよ。
911 :
デフォルトの名無しさん :02/08/04 12:27
Tabが消されてたので、再度。 =* *= <<= *= >>= += /= &= -= %= |= .= x= ^=
るび基地にモジュールとクラスの違いをきいたけれど答えてくれないよ ウハーン!
916 :
通りすがり :02/08/04 21:45
>>916 オーバーロードじゃ演算子は増えないだろ
なんかしんないけどLinuxをインストールしたらRuby処理系が付いてきた。 やる気無くした。
>>918 気にするな。使わなければないのとおなじ。
それはそれとして、できればそういうネタは撲滅スレでやってくれ、
と一応書いてみる。
>>918 わざわざこんなところに書くようなことか?
そういえばカッコいいと思っているだけじゃ?
と一応書いてみる。
日本語のページからインラインスケートを検索しました。 約23,600件中1 - 50件目 ・検索にかかった時間7.74秒 ぐーぐるで7秒もかかったよ、 と一応書いてみる。
922 :
デフォルトの名無しさん :02/08/04 23:50
MacOS8.6でRubyは動きませんか…?
>>911 この中で *= <<= >>= += /= &=
-= %= |= ^= あたりは使えるんじゃないかな。
.= は無理。
俺も困ってるよ。てか、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 を見せ合おう。
マチガイ。 無視してください。
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/とすべし。
つうかおまえら Nifty 使ってる友達のひとりもいないのか?
935 :
デフォルトの名無しさん :02/08/06 13:08
ruby-talk まで Unicode か。
>>895 [ruby-talk:45931]もひどいな。
938 :
デフォルトの名無しさん :02/08/08 09:58
>>927 これを改造して、Postメソッドを発行できるように
出来ますか?
できます。
携帯電話にメールを送る場合に整形してくれるスクリプト(ruby)があったと思うんだけど 名前かURLきぼん。
942 :
デフォルトの名無しさん :02/08/08 20:25
>>941 今でもいくつかレスが付いてる。
しかし、この厨房、[ruby-talk:46032]とは全く違うなあ。
>>943 禿同。
[ruby-talk:46376]にも呆れられてしまった模様。
ところでお前ら、devもlistもマターリしすぎです。 少しはpython-ml-jpの殺伐さを見習ってくだちい。
次のスレはどうする?
948 :
デフォルトの名無しさん :02/08/09 21:18
Ruby/Gtk でウィザード作りたいのですが、どうやると効率的でしょう? 5枚ウィザードあるなら、5個クラス用意してそれを順に出して……とか やってるのですが、なんか激しくダメな方法な気が致します。
>>948 各viewに対してGtk::Dialogのサブクラスを作ってってことなら、問題はない
のでは。いちいちサブクラスを作るのはRuby的には回りくどい気はするけど。
中心にあるモデルをそれぞれ別のオブジェクトにしてってつもりなら、場合に
よるが、一度設計の見直しを奨める。
> 5枚ウィザードあるなら、
つーか、それぞれのダイアログをウィザード1枚と数えるとは知らなかった。
>>947 立てるの?
立てるとしたら、以前あったrubyスレとは別にする?
とりあえずRubyの本スレっぽくしてくれると嬉しい。 一本はまともなRubyスレ欲しいし。
速いね。thx
958 :
デフォルトの名無しさん :02/08/11 17:10
Arrayクラスのfilterメソッドって今はないのですか? 実行すると何か warning: Array#filter is deprecated; use Array#collect! と叱られるんですけど.....
こっそりうめたて
忘れた頃に埋め立て
梅殺陣
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
>>977 「今は」の根拠がわからんが、
Cはそんなに多くないよ。
>>978 だって、Lispの処理系なんて今はほとんど皆無ジャン。
>>979 emacsenだってlisp処理系だぞ。少なくともjavaよりは多いはず。
ちょっと検索してみた ->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
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。