Ruby 初心者スレッド Part 40
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/12/11(土) 15:46:15★注意★ Ruby 1.9.2 は初心者には若干時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。
文字エンコーディング等の外部基礎知識が必要な上、不完全対応の第三者ライブラリでの問題の切り分けが手間です。
迷う点の少ない1.8.7に習熟→おもむろに1.9.2の変更点のみ重点学習、とすればスムーズに移行できるでしょう。
関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。
■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
・エラーメッセージの共通そうな部分やエラーの出るモジュール名でググる
・マニュアルで引っかかったクラスの記述を探す http://www.ruby-lang.org/ja/man/
・FAQを一応読む http://www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
・最終的にやりたいこと(もっとよい方法がある場合が多いので)
・エラーメッセージ(自力で訳さずなるべくそのままで)
・詳しい内容(「動きません」「うまくできません」では回答しようがない)
・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
回答してくれた人には「ありがとう」のひとことをいってあげて。
■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
0136デフォルトの名無しさん
2010/12/15(水) 18:03:48静的にコンパイルするとb = Button.newみたいなコードが得られる
動的にロードするのならIronRubyでも出きるだろう
0137デフォルトの名無しさん
2010/12/15(水) 18:15:33kill myself
0138デフォルトの名無しさん
2010/12/15(水) 18:24:41Array.ForEach(files,f=>Console.WriteLine(f));
0139デフォルトの名無しさん
2010/12/15(水) 18:27:01できてないって言って追っ払っちゃおうか
面倒だし
0140デフォルトの名無しさん
2010/12/15(水) 18:28:100141デフォルトの名無しさん
2010/12/15(水) 18:29:11できません
あなたの勝ちです
では他の人次の質問どうぞ
0142デフォルトの名無しさん
2010/12/15(水) 18:55:17その値に force_encoding して返してくれるぞ、という話を前スレでしようと思ってたらスレが終わってた
irb1.9> p open("http://www.2ch.net/").read.encoding
#<Encoding:ASCII-8BIT>
irb1.9> p open("http://www.2ch.net/", 'r:Windows-31J').read.encoding
#<Encoding:Windows-31J>
0143デフォルトの名無しさん
2010/12/15(水) 19:04:190144デフォルトの名無しさん
2010/12/15(水) 19:19:140145デフォルトの名無しさん
2010/12/15(水) 19:28:540146デフォルトの名無しさん
2010/12/15(水) 19:45:19> それは Net::HTTP の仕事ではないというかそんな根底部分で余計なことすんなということらしい
> open-uri ならヘッダの Content-Type を読んで force_encoding で設定してくれるが、
>
> irb1.9> require 'open-uri'
> irb1.9> p open("http://dailynews.yahoo.co.jp/").read.encoding
> #<Encoding:EUC-JP>
> irb1.9> p open("http://sankei.jp.msn.com/").read.encoding
> #<Encoding:Shift_JIS>
> irb1.9> p RUBY_VERSION
> "1.9.2"
>
> レスポンスヘッダの Content-Type ほど信用ならないものもないのでまあ掛け捨て保険程度
0147デフォルトの名無しさん
2010/12/15(水) 20:00:13例えば2次元画像の特定の領域(x,y,width,height)を指定するのに
こう書くのは問題ですか。他にもっといい書き方があれば教えてください。
image.pixels[x,y,width,height] = pixels
0148デフォルトの名無しさん
2010/12/15(水) 20:10:43そんな書き方してたら座標変換するとき面倒だろ
0149デフォルトの名無しさん
2010/12/15(水) 20:17:16あ、いやそれは問題にしてなくて例えば
pixels[x..x+width, y..y+height]
pixels[[x,y], [width,height]]
pixels[x,y][width,height]
みたいな書き方の方が良いのかなという話です。誤解させてすみません
0150デフォルトの名無しさん
2010/12/15(水) 20:19:20colorならわかるが
0151デフォルトの名無しさん
2010/12/15(水) 20:58:500152デフォルトの名無しさん
2010/12/15(水) 21:57:32うん、Content-Type ヘッダの charset を ASCII-8BIT の代わりにセットする代わりに
引数指定の文字エンコーディング名をセットするようにできます、という話だよね
0153デフォルトの名無しさん
2010/12/15(水) 23:04:09あのコードがそのように解釈できるのか?
どうみても、1pixelに複数pixelを割り当てているようにしか見えないが
CopyRect(Rect srcImage,Rect destImage)
とかにすべきだろ
0154デフォルトの名無しさん
2010/12/15(水) 23:17:45左辺は範囲じゃん
ary[start,length] = ary2の二次元版
0155デフォルトの名無しさん
2010/12/15(水) 23:51:030156デフォルトの名無しさん
2010/12/16(木) 00:06:450157デフォルトの名無しさん
2010/12/16(木) 00:15:290158デフォルトの名無しさん
2010/12/16(木) 01:13:150159デフォルトの名無しさん
2010/12/16(木) 01:54:13この場合はforce_encodingが正しい
0160デフォルトの名無しさん
2010/12/16(木) 08:09:45Encoding は nil が許されないから、必ず何らかの名前がついている
文字エンコーディングを特定できない、または特定しないという印が ASCII-8BIT こと BINARY
ネット経由のファイル取得でエンコーディングを特定できる情報がないから ASCII-8BIT だったものに
force_encoding を使って人間が知ってる情報で名づけてあげることの何がまずいというのか
0161デフォルトの名無しさん
2010/12/16(木) 11:39:38時間はかかりましたが、やりたかったことができました。
余計かな、とは思いましたがみなさんのご協力がなければ
間違いなく先に進めていなかったので、ご報告させていただきます。
本当に助かりました。ありがとうございました。
0162デフォルトの名無しさん
2010/12/16(木) 11:42:38どうすればできますか?
0163デフォルトの名無しさん
2010/12/16(木) 12:27:000164デフォルトの名無しさん
2010/12/16(木) 12:39:54そういう話題ならマジレスするぜ。
ウィンドウ作成とキー入力、サウンドはqtrubyを使うのが一番簡単。
あとはOpenGLを使ってごりごり書く。
3Dシューティングゲームならこれで作れる(実際に作った)。
ただしそこからPS2レベルのゲームを作るにはかなり努力しないといけない。
表示だけ考えても、そこからモデルのロードとスキニング、アニメーションを自前で実装する必要がある。
これらを実装するのはそれなりに知識と時間が必要。
なので今ちょうどそれらを全部含んだM3Gという携帯電話で使われている3D描画APIを実装して
Rubyから使えるようにしている作業の真っ最中。
もう動いてるけど、さすがにまったく知識のない人間には勧められる完成度はない。
とりあえずOpenGLを使って簡単なゲームを作ってみるべし。
ちなみにモデルビュアーのスクリーンショット。これが100%Rubyで書かれている。
この画像ではわからないけどちゃんとアニメーションしている。
http://www.gazo.cc/up/21983.png
0165デフォルトの名無しさん
2010/12/16(木) 12:47:440166デフォルトの名無しさん
2010/12/16(木) 12:48:360167デフォルトの名無しさん
2010/12/17(金) 09:34:26おい、スルーし・・・
ちょw
特定しますた
しかし3Dゲーム作るなら、ゲームエンジンのバインディング作ったほ(ry
0168デフォルトの名無しさん
2010/12/17(金) 09:41:30のぞかせてもらった。
M3GのAPIの互換実装をつくって、別にRubyのバインディングを作ってるのか。
M3Gって需要あるんかいな
0169デフォルトの名無しさん
2010/12/17(金) 10:48:180170デフォルトの名無しさん
2010/12/17(金) 11:04:06ではWindowsを移植してください
0171デフォルトの名無しさん
2010/12/17(金) 12:14:27PSレベルのものは作れそうだ
0172デフォルトの名無しさん
2010/12/17(金) 12:19:04「公開関数が2つ以上関数を引数にとるなんてことめったにねぇよ」
って発想が根底にある?
0173デフォルトの名無しさん
2010/12/17(金) 12:21:19○高階関数
0174デフォルトの名無しさん
2010/12/17(金) 12:33:08たしかそんなような話は聞いたことがある
0175デフォルトの名無しさん
2010/12/17(金) 12:58:09MLかどっかのログくれ!!
俺もブロック見たときびっくりした。何で1個なんだよって。
でも意外にif else end (ブロック2つみたいなもの)のようなものを作ることがなくて困らない、
というかそういう作り方になってしまう。
どうしてもやりたければlambdaでいい。
1個の場合は楽。バランスなのかも
0176デフォルトの名無しさん
2010/12/17(金) 13:02:28みたいなことを言ってた記事を見たことあるが、
なんでもかんでも未来を見通せるわけじゃない。
高階関数を組み入れただけでもすばらしいよ。
0177デフォルトの名無しさん
2010/12/17(金) 13:20:52ttp://www.rubyist.net/~matz/20070512.html#p04
> 高階関数を持つ言語(OCaml)のライブラリを精査したところ、
> 2239関数のうち、関数引数を取らないものが87.2%、ひとつだけ取るものが12.1%で、ふたつ以上とるものは0.7%であった。
> ここからわかることは、プログラミング言語は 99.3%を占める高階関数(ブロック)を0または1個とるものに最適化するべきであり、
> めったにない二つ以上ブロックのために、それ以外のものを「ゆがめて」はいけない、ということ。
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20050930/221979/
> もちろん,メソッド呼び出しに1つだけしかブロックを付けられないという制約はあります。
> しかし,実際に複数のブロックが必要になることはほとんどありません。
Ocamlの論文はけっこう引用されてて、
「実利を取って引数1個限定でシンプルにしてたRubyは勘がよい」という評価がいくつかあったはず
0178デフォルトの名無しさん
2010/12/17(金) 13:30:39Rubyだとたとえば「ブロックが1個限定なのってよく考えたら変じゃね?」という話
def foo(arg1, arg2, &block)
end
と定義して
foo(111,222){|x| ... }
と利用するわけだけど、これって
def foo(arg1, arg2, &block1, &block2)
end
と定義して、現行のRuby文法上ではうまく書けないんだがなんか
foo(111,222){|x| ... }{|y| ... }
みたいに複数ブロック実行できるようにしたとしても別にデメリットはないんじゃね、
複数引数自体は自然だし、いざという時用に用意しててもよくね? という話
0179デフォルトの名無しさん
2010/12/17(金) 13:59:13でたでた、良くある初心者ならこれくらいなら理解できるだろうという上から目線。
そもそも高階関数そのものがわからないのに解説して貰ってもねぇ-
0180デフォルトの名無しさん
2010/12/17(金) 14:02:03defで設定した関数の中で関数を呼ぶもの。
これが1個
def f(g,a)
g.call(g.call(a))
end
これが2個
def f(g,a)
g.call(g.call(g.call(a)))
end
0181デフォルトの名無しさん
2010/12/17(金) 14:12:49Rubyで高階関数を実現するには
lambda, Procとブロックの関係
>>176の真偽も含めて
今日のRuby初心者スレは盛りだくさんだな
0182デフォルトの名無しさん
2010/12/17(金) 14:22:48まるで一人で書いているかのようだ
0183デフォルトの名無しさん
2010/12/17(金) 15:50:31def bar(obj=nil)
obj.foo
end
private
def foo
puts "foo"
end
end
Foo.new.bar(Foo.new)
0184デフォルトの名無しさん
2010/12/17(金) 15:52:010185デフォルトの名無しさん
2010/12/17(金) 16:40:55均等にばらつくほうが不自然
0186デフォルトの名無しさん
2010/12/17(金) 18:04:03Goldの問題だな
0187デフォルトの名無しさん
2010/12/17(金) 18:12:08プログラマは以外と規則正しい生活をしてるってことだな
0188デフォルトの名無しさん
2010/12/17(金) 18:21:140189デフォルトの名無しさん
2010/12/17(金) 18:22:190190デフォルトの名無しさん
2010/12/17(金) 19:05:01a1.foo #=> エラー
a1.instance_eval { foo; self.foo; a1.foo; a2.foo } #=> いずれも可能
fooは、A(とそのサブクラス)のインスタンスのコンテキストで使える。
privateと比較すると、selfに加えて、自クラス・サブクラスの他の
インスタンスのfooが呼べるってこと。
比較判定で他の兄弟インスタンスの属性を参照するメソッドなどがprotectedになりうる。
Javaのprotectedは、コンテキスト関係なく、サブクラスのインスタンスに
対して使用できるかどうかを示す。
0191デフォルトの名無しさん
2010/12/17(金) 19:11:21呼び出しの場所も形式も制限なし
private
呼び出しの場所の制限はないが、形式に制限あり
レシーバつきだと呼び出せない
protected
呼び出しの場所に制限があるが、形式には制限なし
所属クラスか継承クラスの def ... end の中以外では普通はエラー
class C
def priv; end
def prot; end
private :priv
protected :prot
def check_priv(c=nil)
priv rescue warn "cannot priv"
self.priv rescue warn "cannot self.priv"
(c.priv if c) rescue warn "cannot c.priv"
end
def check_prot(c=nil)
prot rescue warn "cannot prot"
self.prot rescue warn "cannot self.prot"
(c.prot if c) rescue warn "cannot c.prot"
end
end
irb> C.new.check_priv(C.new)
cannot self.priv
cannot c.priv
irb> C.new.check_prot(C.new)
irb>
0192デフォルトの名無しさん
2010/12/17(金) 19:11:29ちゃんとカウンセラ常駐の、大手ソフト会社は、メンタルケアを行う事でストレスによる休職や離職が5年前は7%だったのが、昨年は0.7%に減少し、年間2億円のプラス効果が出たとかw
この会社は当然新卒にも大人気らしい。
0193デフォルトの名無しさん
2010/12/17(金) 19:15:02>比較判定で他の兄弟インスタンスの属性を参照するメソッドなどがprotectedになりうる。
というかそれしかないんよね
自分か仲間のオブジェクトをメソッド内に連れ込んだ場合に限ってそいつが喋れるってどんだけ秘密なの
ちなみにどれも __send__ で呼び出すことは可能なので、あんまり防御効果はない
0194デフォルトの名無しさん
2010/12/17(金) 19:33:230195デフォルトの名無しさん
2010/12/17(金) 20:44:41class C
def hoge
fuga = 0
# fugaメソッドを呼び出すには?
fuga
end
private
def fuga
"fuga"
end
end
puts C.new.hoge
0196デフォルトの名無しさん
2010/12/17(金) 21:12:110197デフォルトの名無しさん
2010/12/17(金) 21:54:270198デフォルトの名無しさん
2010/12/17(金) 22:06:42同じクラス内で同じメソッド名を作っておく意味ってあるの?
0199デフォルトの名無しさん
2010/12/17(金) 22:07:29class C
def hoge
fuga = 0
# fugaメソッドを呼び出すには?
__send__(:fuga)
end
private
def fuga
"fuga private"
end
end
puts C.new.hoge
0200デフォルトの名無しさん
2010/12/17(金) 22:11:08いわゆる、ローカル変数名がたまたま被るという話だろう
それでいてローカル変数の名称も変更できずメソッド名も変更できずロジックの変更もできない
という特殊環境下でたかだか __send__ を魔術と抜かすんだからどうにもならん
0201デフォルトの名無しさん
2010/12/18(土) 00:13:26だから、「たいていのprotectedの使い方は間違い」だと疑ったほうが
いいんだよね。RailsとかRailsとか。
0202デフォルトの名無しさん
2010/12/18(土) 00:42:490203デフォルトの名無しさん
2010/12/18(土) 01:18:230204デフォルトの名無しさん
2010/12/18(土) 03:51:20メソッドを確実に呼ぶだけだ
ただまあちょっとばかし可視性とか無視してるが
0205デフォルトの名無しさん
2010/12/18(土) 10:34:040206デフォルトの名無しさん
2010/12/18(土) 11:20:420207デフォルトの名無しさん
2010/12/18(土) 13:02:570208デフォルトの名無しさん
2010/12/18(土) 13:27:07で、>>204の通りだろ
呼び出し制限に影響されないというのが差異で、単なるメソッド呼び出し
本来は、private メソッドを無理矢理使うときー、みたいな限定用途ではない
0209デフォルトの名無しさん
2010/12/18(土) 13:31:52別にアクセス制限は関係ない。
0210デフォルトの名無しさん
2010/12/18(土) 13:56:04privateメソッドにアクセスする用途で使ったのなんて
モンキーパッチで仕方なく書いた1回だけだ
0211デフォルトの名無しさん
2010/12/18(土) 16:56:310212デフォルトの名無しさん
2010/12/18(土) 16:59:33と
privateメソッドを呼ぶ
の違いが初心者の私にはわかりません。
前者はほかに何ができることを言っているのでしょうか?
0213デフォルトの名無しさん
2010/12/18(土) 17:17:57privateメソッドを呼ぶ
と
動的プログラミング
というくくりで考えればいい。
上二つの違いは、何が目的なのかという解釈の違い。
二つのくくりの違いは、もう何もかも違うだろ。
0214デフォルトの名無しさん
2010/12/18(土) 18:27:11class C
def foo; puts "foo"; end
def bar; puts "bar"; end
def baz; puts "baz"; end
def main(arr)
arr.each do |name|
__send__(name)
end
end
end
C.new.main(['foo', 'baz', 'foo'])
・ 「なんかスゴいからこれどっかで使おう!」とか考えない
・ 手段のために目的探したりしない、乱用厳禁
・ どうしても困ったときにはたぶんあなたの前に現れてくれるサンタさん
0215デフォルトの名無しさん
2010/12/18(土) 19:34:57説明&例をあげていただいて感謝
0216デフォルトの名無しさん
2010/12/18(土) 23:30:23へーー。わかりやすい。
0217デフォルトの名無しさん
2010/12/19(日) 08:46:40def foo; puts "foo2"; end
def bar; puts "bar2"; end
def baz; puts "baz2"; end
def main(arr)
arr.each do |name|
__send__(name)
end
end
end
C.new.main(['foo', 'baz', 'foo'])
引数から直接関数を呼ぶって危険じゃないの?
これがrubyスタイル?
0218デフォルトの名無しさん
2010/12/19(日) 09:32:08・ 手段のために目的探したりしない、乱用厳禁
・ どうしても困ったときにはたぶんあなたの前に現れてくれるサンタさん
って書いてあるじゃん。もう少し考えてから書こうよ。いくら2chと言ってもさ。
0219デフォルトの名無しさん
2010/12/19(日) 09:40:180220デフォルトの名無しさん
2010/12/19(日) 11:02:37そんくらいで危険とか言われてもピンと来ないな
0221デフォルトの名無しさん
2010/12/19(日) 11:15:13まあそんなもんだと思う
__send__ に渡す引数が信用ならないなら自前でなんとかしてくれ
0222デフォルトの名無しさん
2010/12/19(日) 15:57:13>Rubyは開発者のことを信頼しているっていう思想が根源にあるから
C みたいな言い分ですね
0223デフォルトの名無しさん
2010/12/19(日) 17:41:09ttp://regional.rubykaigi.org/sapporo03
これにMatzの発表資料と動画がないんだけど、公開されないのかな。
秘守契約とかあんの?
0224デフォルトの名無しさん
2010/12/19(日) 17:59:45matzはCプログラマ
0225デフォルトの名無しさん
2010/12/19(日) 20:26:11b.rbというソースがあるとき
irb起動して
require './b'
(ruby1.92)
とソースを読ませてから
色々なことをするの?
参考url
オブジェクトの中身が知りたーい - takkan_mのNo planな日常
http://d.hatena.ne.jp/takkan_m/20101213/1292247476
0226デフォルトの名無しさん
2010/12/19(日) 20:45:100227デフォルトの名無しさん
2010/12/19(日) 20:53:28a = Object.new
b = Object.new
p a == b #=> false
a = Array.new
b = Array.new
p a == b #=> true
0228デフォルトの名無しさん
2010/12/19(日) 20:59:000229デフォルトの名無しさん
2010/12/19(日) 21:15:09Oh.. Cを読まないとダメですか 自分にはまだちょっと早そうですね〜
リファレンスの文章で我慢します
レスありがとうございました
0230デフォルトの名無しさん
2010/12/19(日) 21:15:25ちょっと見たいだけなら、↓から覗くって手もあるよ。
http://rubydoc.info/stdlib/core/1.9.2/frames
0231227
2010/12/19(日) 21:23:50おお、これはわかりやすいですね!
これなら自分でもObject#==とArray#==のCコードを見ることができました
Object#==のほうは短いのでなんとなくわかりますが、Arrayのほうはよくわからずw でも実装が違うってことはわかりました
参考になるサイトを教えていただきありがとうございました
0232デフォルトの名無しさん
2010/12/20(月) 00:34:51rb_define_methodとかあるから、そこでRubyレベルのメソッド名を探す
と、対応するCの関数が分かる。
0233デフォルトの名無しさん
2010/12/20(月) 01:14:22Ruby 初心者スレッド Part 26
http://pc11.2ch.net/test/read.cgi/tech/1235727504/
Ruby 初心者スレッド Part 25
http://pc11.2ch.net/test/read.cgi/tech/1233369067/
Ruby 初心者スレッド Part 24
http://pc11.2ch.net/test/read.cgi/tech/1230783202/
Ruby 初心者スレッド Part 23
http://pc11.2ch.net/test/read.cgi/tech/1227123021/
Ruby 初心者スレッド Part 22
http://pc11.2ch.net/test/read.cgi/tech/1221467121/
Ruby 初心者スレッド Part 21
http://pc11.2ch.net/test/read.cgi/tech/1217952441/
Ruby 初心者スレッド Part 20
http://pc11.2ch.net/test/read.cgi/tech/1214498119/
Ruby 初心者スレッド Part 19
http://pc11.2ch.net/test/read.cgi/tech/1208100393/
Ruby 初心者スレッド Part 18
http://pc11.2ch.net/test/read.cgi/tech/1203658291/
Ruby 初心者スレッド Part 17
http://pc11.2ch.net/test/read.cgi/tech/1200472887/
Ruby 初心者スレッド Part 16
http://pc11.2ch.net/test/read.cgi/tech/1197120980/
Ruby 初心者スレッド Part 15
http://pc11.2ch.net/test/read.cgi/tech/1193298175/
Ruby初心者スレッド Part 14
http://pc11.2ch.net/test/read.cgi/tech/1188014743/
0234デフォルトの名無しさん
2010/12/20(月) 01:14:37http://pc11.2ch.net/test/read.cgi/tech/1183115034/
Ruby初心者スレッド Part 12
http://pc11.2ch.net/test/read.cgi/tech/1178167650/
Ruby初心者スレッド Part 11
http://pc11.2ch.net/test/read.cgi/tech/1174607679/
Ruby初心者スレッド Part 10
http://pc11.2ch.net/test/read.cgi/tech/1169542763/
Ruby初學者スレッド Part 9
http://pc10.2ch.net/test/read.cgi/tech/1164065622/
Ruby初心者スレッドPart8
http://pc8.2ch.net/test/read.cgi/tech/1159424939/
Ruby初心者スレッドPart7
http://pc8.2ch.net/test/read.cgi/tech/1154077799/
Ruby初心者スレッドPart6
http://pc8.2ch.net/test/read.cgi/tech/1147918197/
Ruby初心者スレッドPart5
http://pc8.2ch.net/test/read.cgi/tech/1143403165/
Ruby初心者スレッドPart4
http://pc8.2ch.net/test/read.cgi/tech/1137927749/
Ruby初心者質問スレPart3
http://pc8.2ch.net/test/read.cgi/tech/1125587131/
Ruby初心者質問スレPart2
http://pc8.2ch.net/test/read.cgi/tech/1107799347/
Ruby初心者質問スレPart1
http://pc5.2ch.net/test/read.cgi/tech/1100534824/
0235デフォルトの名無しさん
2010/12/20(月) 10:20:59まるで普及してない・・・
0236デフォルトの名無しさん
2010/12/20(月) 10:26:45普及は 1.9.1 から数えてくれ
ttp://www.ruby-lang.org/ja/news/2009/01/30/ruby-1-9-1-released/
来年の1月30日で2歳だ
■ このスレッドは過去ログ倉庫に格納されています