トップページ⇒tech
1001コメント279KB

Rubyについて Part 29

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/10/29(月) 23:27:18
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。

Ruby Home Page
http://www.ruby-lang.org/ja/

= 前スレ
Rubyについて Part 28
http://pc11.2ch.net/test/read.cgi/tech/1187298711/

過去スレ・関連スレは >>2-
0577デフォルトの名無しさん2007/12/24(月) 00:48:04
インデントに文法上の意味付けをする
って合理的だと思うけどなー。
それで、lisp のキモい )))))))))))))))))))))))))))));
みたいなのが減れば嬉しいやん。目に優しい。
Haskell もそうなのか。ちょっと興味沸いてきた。
0578デフォルトの名無しさん2007/12/24(月) 01:03:19
Lisperの目には括弧が殆ど見えていないから、
「コンパイラにもエディタにも優しい」という意味で括弧は減らないと思う。
0579デフォルトの名無しさん2007/12/24(月) 01:13:08
Lisper:
そういえばカッコなんてものがありましたっけ。

Pythonista:
そういえばインデントなんてものがありましたっけ。

Rubyist:
そういえばendなんてものがありましたっけ。
0580デフォルトの名無しさん2007/12/24(月) 01:16:07
まずはその生産性の低いループ話をどうにかした方がいい。
0581デフォルトの名無しさん2007/12/24(月) 01:22:03
pythonianではないのかなぁ。
0582デフォルトの名無しさん2007/12/24(月) 01:28:25
スクリプト言語はCの構文糖にすぎない。
Ruby, Python, Perl, PHP
結局慣れの問題で、どれも同じようなものに思えてきた。
0583デフォルトの名無しさん2007/12/24(月) 01:29:37
>>582
いずれもチューリング等価な世界で何を言っているのだ?
0584デフォルトの名無しさん2007/12/24(月) 03:30:13
>>581
Pythonista も結構見るが?
0585デフォルトの名無しさん2007/12/24(月) 03:31:19
>>532
>1.9.1までに安定させれば無問題 
あと一日あるかないかで安定させられるかよw
0586デフォルトの名無しさん2007/12/24(月) 09:22:32
>>576
>Rubyの楽しさは、オブジェクト指向のパラダイムのスジを通しつつ、
>表現者の自由度が高くできるように言語的な束縛を少なくデザインされ、
>行いたいこと(目的)を簡素に表現できるところなんだと思う。
結局何の特徴もない、まで読んだ。
0587デフォルトの名無しさん2007/12/24(月) 09:37:19
これ以上はアンチスレの方が釣れるんじゃないか
いよいよイブだし。

クリスマスリリースってのは明日中ってことかな?
0588デフォルトの名無しさん2007/12/24(月) 10:03:09
hotlinks見るたびに、赤いtrunkが気になる
もう諦めた方が良いんじゃ...

ゆったりと家族サービスしとけよ
0589デフォルトの名無しさん2007/12/24(月) 10:19:04
いいじゃんとりあえず出して、あとからこっそり1.9.1.1を出せば
0590デフォルトの名無しさん2007/12/24(月) 10:20:55
不眠不休で頑張っているMatzの指先に
聖なる小人さんが宿ってコード直してくれるから大丈夫だろう。
0591デフォルトの名無しさん2007/12/24(月) 11:09:34
方向音痴な初心者です
Python.とRuby.は変数の使用形式は変わりますか?
0592デフォルトの名無しさん2007/12/24(月) 12:58:26
>>591
質問の意図が分からないけど、RUBY 初心者スレッドへGO
0593デフォルトの名無しさん2007/12/24(月) 13:00:28
>>591
お好きな方へ
Ruby 初心者スレッド Part 16
http://pc11.2ch.net/test/read.cgi/tech/1197120980/

Pythonのお勉強 Part22
http://pc11.2ch.net/test/read.cgi/tech/1196426978/
0594デフォルトの名無しさん2007/12/24(月) 14:13:02
gemsとかrails関係に付いてくる文書フォーマットの名前を教えてください

== H1
adsafdjsakfljkafl;jakfljdskf;jsa

== H1
fjsdaljas

みたいなやつです
0595デフォルトの名無しさん2007/12/24(月) 14:40:19
>>594
RD http://ja.wikipedia.org/wiki/Ruby_Document_format
0596デフォルトの名無しさん2007/12/24(月) 15:35:28
Lispの括弧は、慣れると解りやすいな
「こう書くとこういう風に解釈される」
とか悩むことがない

でも言語がエディタ選ぶってのはどうか思う
0597デフォルトの名無しさん2007/12/24(月) 15:58:44
http://eigenclass.org/hiki/Changes+in+Ruby+1.9
0598デフォルトの名無しさん2007/12/24(月) 17:14:12
>>595
あれ、そうなの?RDocかと思ってた。
0599デフォルトの名無しさん2007/12/24(月) 17:19:08
>>586
> 結局何の特徴もない、まで読んだ。
他の言語から、いいところ取りをしてリデザインしたのがRuby何だから、
とがった特徴なんてあるわけないじゃん。
0600デフォルトの名無しさん2007/12/24(月) 17:33:42
けなしたつもりでけなしたことになってないってかっこ悪いよね
0601デフォルトの名無しさん2007/12/24(月) 18:10:19
Rubyの楽しさとは何かというと、正規表現や様々なライブラリがそろっていて、
適度に力を抜いて、割と素直なオブジェクト指向のコードを書けるというところかね。
PerlやPythonと何が違うといわれると、Perlほど汚くはないしとか、
インデントがどうたらとかの話になるわけだけど。

そう感じる人は楽しいというのに同意するけど、
そうじゃない人には理解しにくい、とても感覚的な謳い文句だな。
0602デフォルトの名無しさん2007/12/24(月) 19:05:47
MacってSpotlightに
delete
って打つと
File#delete
Dir#delete
とかリファレンスが出てくるの?
0603デフォルトの名無しさん2007/12/24(月) 19:24:56
今晩なの?
0604デフォルトの名無しさん2007/12/24(月) 19:26:45
出ないよ。そういう挙動にしたければSpotlight Pluginを作る必要あり
0605デフォルトの名無しさん2007/12/24(月) 19:30:13
こんなのがあった
Ruby Spotlight Importer
http://www.arcadianvisions.com/downloads/RubyImporter.html

riじゃなくてなまの.rbスクリプトが対象のようだが。
0606デフォルトの名無しさん2007/12/24(月) 22:51:51
まだ/repos/ruby/tagsや/repos/ruby/branchesの下に1.9は存在しないんだなぁ。

0607デフォルトの名無しさん2007/12/24(月) 23:41:50
質問します。
Rubyのクラスについてですが、
例えば、
Tableというクラスを作ったとします。
そこにはArrayクラスのインスタンス変数などが含まれます。
他のクラスにTableクラスを渡す事は出来ますか?
それともその中にある@arrayを参照して渡さないとダメですか?
メッセージパッシングは既存のデフォルトクラス(数値クラスなど)
を用いて行うのがソフト工学的には正しいのでしょうか?
自作した、もしくは標準ライブラリのクラスそのものを渡す事はどうなんでしょうか?
0608デフォルトの名無しさん2007/12/24(月) 23:46:58
>>607
何を言いたいのか分からないが、初心者スレ相当ということはわかる。
0609デフォルトの名無しさん2007/12/24(月) 23:50:37
>>607
>他のクラスにTableクラスを渡す事は出来ますか?
Oui.
>それともその中にある@arrayを参照して渡さないとダメですか?
状況次第。
0610デフォルトの名無しさん2007/12/24(月) 23:52:29
うん、何を伝えたいのか理解が困難。
何か他の言語の毒を抱えているのかも知れないなぁ。

> 他のクラスにTableクラスを渡す事は出来ますか?

できるよ。委譲であれ、メソッドの引数であれ。
0611デフォルトの名無しさん2007/12/24(月) 23:54:12
>>607
日本語でおk
というかそもそも板違い。初心者スレに行きなさい
0612デフォルトの名無しさん2007/12/24(月) 23:55:18
「クラスを渡す」が理解できない
インスタンスではなく、そういうのもあるの?
0613デフォルトの名無しさん2007/12/25(火) 00:04:23
class Table
def initialize(v, h)
@v = v; @h = h
@array = Array.new
v.times do |i|
@array[i] = Array.new(h, 0)
end
end

def show
print "Table status\n"
@v.times do |i|
@h.times do |j|
print @array[i][j], "\s"
end
print "\n"
end
end

def reset
v.times do |i|
h.times do |j|
@array[i][j] = 0
end
end
print "Table is reset, \n"
end
end
0614デフォルトの名無しさん2007/12/25(火) 00:08:23
>>611
板違いって・・・日本語でおk
0615デフォルトの名無しさん2007/12/25(火) 00:11:29
例えばこんなクラスを作ります。
2次元配列で数値を保存してくれるクラスですが、
別に、配列を引数として
GUIで数値を表示する(例えばマインスイーパみたいに)クラスを作ります。
その時に、そのクラスの数値を表示するメソッドは、
Tableを引数とすべきなのか、Arrayを引数にすべきなのか。
2次元の配列を引数にするという事は出来ますか?

例えばですが、このメソッドが配列を引数で成り立つと仮定して、
def show_gui(array2d)と書けるとします。
この時、array2dには縦横の長さが分かりません。(メソッド中で調べるしかありません)
なので、Tableクラスに限定した方がいいと思うのですが、
一方、Tableクラスしか使えない事にすると、拡張性が失われます。
デフォルトのArrayクラスを引数にした方がいいでしょう。
しかしおれには、メソッド内で
・なんだ引数は2次元じゃないじゃん、てか文字列じゃんw
・数値じゃなくて文字列が入ってるんですけど・・・
とか判定させるのはソフト工学的にいけないと思うのですが、
この場合、どうするのが正しいのでしょうか?
0616デフォルトの名無しさん2007/12/25(火) 00:13:35
もっともこのTableクラスでは、
数値以外にも持ってしまえますが、
数値の代入以外を禁止するのはそんなに難しい事ではないかと思います。
0617デフォルトの名無しさん2007/12/25(火) 00:26:27
>>615
とりあえずおちついて初心者スレへ行けって。
なんかあっちでも配列いじくってるから。
0618デフォルトの名無しさん2007/12/25(火) 00:28:13
おれの言ってるのは
ただ仕様がどうとかいう単純な事ではなくて
「どう作るべきか」
という方法論なのですが。
Rubyは動的型づけなので、引数をなんでもとってしまう。
その為、どういう風に書けばいいのかに迷う事になる。
0619デフォルトの名無しさん2007/12/25(火) 00:47:39
>>618
それはOO上でデザイン時に、全体を見通した上でクラスをどう切り分けしていくかの話なので、
一律な解答はなく、動的だとか言語の問題は直接関係ない。
0620デフォルトの名無しさん2007/12/25(火) 00:56:02
では使い捨てのクラスを作ってもいいという事ですか?
OOPの利点は拡張性だと思います。
継承が出来ないような汎用性のないクラスを作ってしまったら
非常に非効率的です。
上記の場合も、
本当なら、Tableクラスを引数にしたいですが、
そうすると汎用性が失われます。
Tableクラスを使わないと、このGUIのクラスは動かない事になります。
あるいは同じようなインスタンス変数を持つクラスがあった場合に、
誤作動を起こす可能性もあります。
なので、2次元配列を渡すのがベターかと思ったのです。

基本クラスのみを使ってかけば汎用性は最大になります。
引数に自作のクラスインスタンスをとるような設計は間違いではないのですか?
0621デフォルトの名無しさん2007/12/25(火) 01:12:30
使い捨て大いに結構。
0622デフォルトの名無しさん2007/12/25(火) 01:14:57
継承を行うことによって拡張を行うののがよいと考えらえていたのははるか昔の話。
ともかく、

> 本当なら、Tableクラスを引数にしたいですが、
> そうすると汎用性が失われます。
> Tableクラスを使わないと、このGUIのクラスは動かない事になります。

この考えはおかしい。もちろん、Tableを基底にしたクラスを利用してもよいが、
ダックタイプがあるのだから、別にTableクラスが必要はワケではない。

拡張性たって、どこまでも拡張性を仕方がない。
閉めるところは閉めて、緩めるところは緩めると決定を下していくのがOOの設計じゃないなか。
つまり、あんたが考えて、都合のよい実装を見つけるしかない。
0623デフォルトの名無しさん2007/12/25(火) 01:17:59
何で自作クラスのインスタンスを渡すようにしたら汎用性がなくなるの?
そもそも二次元配列の認識が間違ってるし、
配列のやり取りがしたいだけなら上のTableクラスの意義もよく分からん
構造の保障されないArrayを直接渡すより、Tableに統一した方がマシに見える
って全体を見てないから憶測だけど
0624デフォルトの名無しさん2007/12/25(火) 01:21:23
スクリプトなんてかかなければ汎用性最大だと思うんだ
0625デフォルトの名無しさん2007/12/25(火) 01:29:13
>>620
Java とか使ったこと無いんだろうなぁ。
Applet とか使い捨てのクラス作らないで何作るんだろう…

俺は Ruby は気楽に使い捨てができる言語として大変重宝してる。
書くのが楽なら使い捨ても負担にならない。
0626デフォルトの名無しさん2007/12/25(火) 01:33:56
Ruby自体・・・
0627デフォルトの名無しさん2007/12/25(火) 03:11:31
ruby-dev:32713

やれやれだな。
0628デフォルトの名無しさん2007/12/25(火) 03:44:59
>>620
まず質問がよくわからん
コード見ないことには、どんな設計しているのか見当がつかん
そのメソッドに汎用性が必要なの?Tableクラス以外渡せないと困るの?
別にTableクラスで困らないならTableクラスにすればいいとしかいえん
あとは2次元配列からTableクラスを簡単に作成できるようにしとけば、
つまり foo(array) はできなくても foo(Table.new(array)) とできるようにしとけばいいんじゃない?
0629デフォルトの名無しさん2007/12/25(火) 04:03:03
>>607から>>613 >>615 >>616 >>618 ときて >>620が同じ人だとして、
最初の質問から思いっきりぶれてないか?別人ならすまんが

原則にこだわるのもいいけど、何をこの場ではっきりさせたいのかが
まったく分からない
と、こんな時間に読んでる俺が言ってみる
0630デフォルトの名無しさん2007/12/25(火) 04:43:35
なんで、この時間におきてるんだw?
0631デフォルトの名無しさん2007/12/25(火) 08:41:16
>>623
自作クラスのインスタンスを引数にしか出来なかったら
他のクラスのインスタンスは引数に出来ない事になる。
これは汎用性が失われた事になる。

クラスは独立すべきです。
だから、引数を基本クラスに限定すべきだと思いました。

こういう話を考えます。
会社クラス
@employees * 100
payment_up(x)

従業員クラス
@y

というクラスを考えます。@employeesは従業員クラスのインスタンスで、
コンポジションされています。payment_upは従業員の頑張りに応じて
給料を上げるメソッドです。
さて、xですが、ここにはどう考えても従業員クラス限定で引数を指定したいわけです。
しかしここで問題が起きます。
従業員の給与変数がyとなっている事です。
これによって、他のインスタンスを入れた時に誤作動する可能性があります。
かといって、ここに数値クラスの給与そのものを持ってくるのは
少し池沼っぽいです。(数値を上げるだけのメソッドになって、数値ならなんでも
引数にとれてしまう)

これは動的型の仕様ですか?
0632デフォルトの名無しさん2007/12/25(火) 09:01:16
def [](index_i, index_j)
return @array[index_i][index_j]
end

def []=(index_i, index_j, value)
@array[index_i][index_j] = value
end

こんなメソッドを追加して、代入が出来るようにしました。
しかしこれではおれの要求には達しません。
おれとしては
[][] = value
の形で代入したりしたいのですが、
何か方法はありますか?
0633デフォルトの名無しさん2007/12/25(火) 09:13:52
>>630
きっと飲み会から帰ってきたんだよ
ほら、祝日だし
0634デフォルトの名無しさん2007/12/25(火) 10:00:41
三時か!
あと5時間!最後のバグとりがんがってほしい。
0635デフォルトの名無しさん2007/12/25(火) 10:01:08
>>631
がんばれ、もっと考えるんだ!
一番すっきりしたコードになった時、それが答えだ!
0636デフォルトの名無しさん2007/12/25(火) 10:03:46
>>635
助けてください。
当方ゆとりです
0637デフォルトの名無しさん2007/12/25(火) 10:26:29
最近突然多次元配列関連の質問がどっと増えた気がするんだけど、気のせい?
最近何かあった?
0638デフォルトの名無しさん2007/12/25(火) 10:27:57
ヒント: クリスマス
0639デフォルトの名無しさん2007/12/25(火) 10:50:03
それもあるけど
純粋に強化学習の課題が出ていて、
それについてクラスをどう作るべきなのか悩んでいるのです。
当方京大生で、たぶん情報工学を専攻します。
オブジェクト指向はとても興味深いので質問しています。
まともに答えてください。

引数をどういう形でとるべきかというのは
ソフト工学上とっても大事な問題なのです。
0640デフォルトの名無しさん2007/12/25(火) 11:00:29
>>639
立木秀樹にでも聞いてこい
0641デフォルトの名無しさん2007/12/25(火) 11:02:33
なんだこの面白い研究室はああああああああああああ

でも騒人か・・・
0642デフォルトの名無しさん2007/12/25(火) 11:03:53
2ちゃんで聞く時点でまともとか言われてもなあ・・・。
教授か友達に聞くか、MLに池よ。せっかくの学生生活を2ちゃんで過ごすのって
すごーくもったいないぜ。
第一、レポート書くときに参考文献に「2ちゃんねる」って書くのかい?ありえんよ。

もうひとつ、池沼とか書くなバカ死ね
0643デフォルトの名無しさん2007/12/25(火) 11:24:06
> 参考文献に「2ちゃんねる」

書いて欲しいと思った…。
0644デフォルトの名無しさん2007/12/25(火) 11:34:39
>>631
>クラスは独立すべきです。
>だから、引数を基本クラスに限定すべきだと思いました。
こういう新しい発想は嫌いじゃないけど、この主張は今まで聞いたことがない。
少なくとも、今までの偉い人はそんなこと主張していないし、引数を基本クラスに限定しなくてもみんな特に困ってはいない。
そのあとの例も何言ってるのかよくわかんないんだけど、

>しかしここで問題が起きます。
>従業員の給与変数がyとなっている事です。
>これによって、他のインスタンスを入れた時に誤作動する可能性があります。

これは、他のまったく関係ないクラスで@yをつかっていた場合、そのクラスのインスタンスを渡せてしまうことを心配しているのかな。
もしそうなら、動的な言語ならそれは仕方ない、そういうものだと思ってあきらめてください。
これは引数を基本クラスに限定したつもりでも同じことだし、そもそも『引数を基本クラスに限定する』ということ自体できない。

つうかさ、ほんとに京大生なら自分の意図をわかりやすく説明しろよな。こんな質問だと何言ってるのかわからんわ。相手はおまいさんほど賢くはないんだから。
0645デフォルトの名無しさん2007/12/25(火) 12:29:19
クリスマスイブに学歴と立て続けでスレが殺気立ってますね(^^;;
0646デフォルトの名無しさん2007/12/25(火) 13:34:36
Rubyの問題というよりは、日本語の問題
0647デフォルトの名無しさん2007/12/25(火) 13:36:17
突貫工事おもろい
0648デフォルトの名無しさん2007/12/25(火) 14:27:12
Ruby 1.9.1はruby1.8.6に変わるものだと思っていいんですよね
0649デフォルトの名無しさん2007/12/25(火) 14:41:48
>>648
まったくの別物
0650デフォルトの名無しさん2007/12/25(火) 14:58:55
>>648
それはRuby2.0から。

そういや今はもうruby-shimとかruby-sumoとか作らないよね。個人的には
ruby-1.8コードをyarvで動かせるパッケージが欲しい。
0651デフォルトの名無しさん2007/12/25(火) 15:07:07
今回 1.8.7 って出るんだっけ?
0652デフォルトの名無しさん2007/12/25(火) 15:27:37
立木とかいう教授にメルしてみよ。
もっと勉強してから来なさいってみっくみっくにされそうだけど、
だけど他学部の人から相談を受けたらそんなに嫌な顔はしないかもな。
ソフトウェア工学は興味があるが、
あくまでもプログラミングのテクニックとしてで、学問的にはどうでもいい。
とか言ったらその場で抹殺されそう。

>>644
新しい発想じゃないだろ。
どんな本にでもクラスは独立すべき、依存したクラスはよくないと書いてある。

強化学習のプログラム書いたら
おれのHPにうpするから
評価しろよな。
そこまで偉そうにするんだったら採点くらい出来るだろ。

プログラミングはバックグラウンドでは0と1で計算しているだけ。
また、ある時に1と入れたら(乱数を使わない限り)、必ず0か1のどちらが出るようになっている。
だから、必ず最善の手法が存在するはずである。
0653デフォルトの名無しさん2007/12/25(火) 15:37:56
Javaとかは依存したクラスは良くないという理想のもとに、
やたらめったら複雑なアーキテクチャになって、
少なくともわかりやすいとは言いづらいシステムになる事はよくあると思うけど。
それはJavaが静的な型付け言語だから仕方ない部分がたくさんあって。

対してRubyはクラス同士が依存しまくったソースコードを書いても、
動的で、クラスの定義を後付けできたりする性質と相まって、
案外うまくいっちゃう事が多いと思う。

つか、アプリケーション作る場合とフレームワーク作る場合では、
依存するクラスをどの程度なくすかどうかの割合って違うよな。

基本クラスしかメソッドの引数に使うななんて、
ほんとにそれでプログラミングが楽になるのか?

クラス同士が依存するなときう教えは、プログラミングを楽にするための教えであって、
それがプログラミングを難しくしてたら全く意味ないぞ。
0654デフォルトの名無しさん2007/12/25(火) 15:44:10
つーかすごい極端な話、
「従業員管理クラス」と「従業員クラス」という二つのクラスがあった場合、
「従業員管理クラス」が「従業員クラス」に依存しないってどういう場合だ!
0655デフォルトの名無しさん2007/12/25(火) 15:45:58
>>652 は何か適当なデザパタ本は読んでるの?
その中では、652の言うような意味でクラスは独立してる?

あと、書き込み全体から感じるにおいからして、
Ruby を使ってダックタイピングならぬチキンタイピングを始めちゃう前に、
Java とか C♯とか静的な型の言語を使った方が欲求が満たされて、
幸せに慣れるんじゃないかな。

http://talklikeaduck.denhaven2.com/articles/2007/10/22/chicken-typing-isnt-duck-typing
0656デフォルトの名無しさん2007/12/25(火) 15:53:52
コンポジションを使う場合と使わない場合は
どう区別するのがいいの?
0657デフォルトの名無しさん2007/12/25(火) 16:34:57
ネタに困ってる訳でもないのに、お前らやさしいな・・・
0658デフォルトの名無しさん2007/12/25(火) 16:54:18
>>650
Ruby1.9.1は開発者向けでしたか。
Ruby1.9.1になれば速くなるという記事がたくさんあったので、
Ruby1.8.6に変わるものだと思っていました。
一般人は1.8.6を使い続ければいいということですか。
0659デフォルトの名無しさん2007/12/25(火) 17:48:05
1.8の消極的メンテしかされない糞ライブラリで足りるなら
0660デフォルトの名無しさん2007/12/25(火) 19:00:39
>>659
「一般人」を 1.9.1 に誘導するようなレスはやめれ。
0661デフォルトの名無しさん2007/12/25(火) 19:20:07
>>652
>新しい発想じゃないだろ。
>どんな本にでもクラスは独立すべき、依存したクラスはよくないと書いてある。
いや十分新しいよ。「独立したクラスにすべき」という考え方が「引数は基本クラスに限定すべき」という考えに変換されている点など特に。
どういう思考回路を使ったらそういう結論になるのか不思議。

>そこまで偉そうにするんだったら採点くらい出来るだろ。
評価するのは構わないけど、偉そうなのはそっちだろ。日本語間違ってるよ。

>プログラミングはバックグラウンドでは0と1で計算しているだけ。
>また、ある時に1と入れたら(乱数を使わない限り)、必ず0か1のどちらが出るようになっている。
>だから、必ず最善の手法が存在するはずである。
前提と結論が100万光年離れてる。京大生の頭では補完できるかもしれないが、そこまで賢くない一般人には無理。
0662デフォルトの名無しさん2007/12/25(火) 19:20:22
意図としては1.9.1は1.10であり
偶数の安定バージョンって位置付けじゃないの?
0663デフォルトの名無しさん2007/12/25(火) 19:37:38
>>652
> プログラミングはバックグラウンドでは0と1で計算しているだけ。
> また、ある時に1と入れたら(乱数を使わない限り)、必ず0か1のどちらが出るようになっている。
> だから、必ず最善の手法が存在するはずである。

まったく意味はわからんが、これが本当ならプログラマとして夢を持てるw
0664デフォルトの名無しさん2007/12/25(火) 19:40:59
最善つったって、色々あるのにな
0665デフォルトの名無しさん2007/12/25(火) 19:46:03
>>632
def [](index)
return @array[index]
end

と定義すれば
obj[i][j] = value
の形で代入できる

>>652
>どんな本にでもクラスは独立すべき、依存したクラスはよくないと書いてある。
それは場合によりけりだ
自分でもコンポジションって言葉を使ってるだろ?

依存は「できるだけ少ない方がいい(不要な依存はいらない)」のであって
適切な依存関係はプログラムを分かりやすくする
0666デフォルトの名無しさん2007/12/25(火) 19:48:03
あとは細かいアルゴリズムを書いておしまいだ。
クラスは作った。
どう悩んでも今のおれでは依存だらけになったら
オブジェクトコンポジションは極力避けた。
ニコニコにFeel the Rubyとかいうドガがうpされているので
見て基本概念を勉強しようと思う。
0667デフォルトの名無しさん2007/12/25(火) 19:50:05
>>665
それで出来るわけがないwww

代入演算子が定義されてないじゃないか。
それじゃreturnして終了だ。メモリが書き換わらない。

それにi, jの2値必要なのにどうしてその形で出来るんだ?
子供だましすぎる。
06686652007/12/25(火) 20:20:27
>>667
……さすがに絶句した

とりあえず何も言わずに次のプログラムを実行しなさい
結果を見て納得したらもう来ないでね、おしまいみたいだし

class Foo
def initialize(data)
@data = data
end

def [](index)
@data[index]
end
end

foo = Foo.new([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
p foo[0]
foo[0][1] = 200
p foo[0]
0669デフォルトの名無しさん2007/12/25(火) 20:20:59
つうか初心者スレでやれと
0670デフォルトの名無しさん2007/12/25(火) 21:34:48
1.9.1は出ない、出るのは1.9.0。

1.9.0が安定版だとか言ってる人はここ数日のChangeLog見直してくるといい。
数日で数百revisionが上がってるものが安定版なわけないだろw
0671デフォルトの名無しさん2007/12/25(火) 21:43:21
どこの京大何だいったい
0672デフォルトの名無しさん2007/12/25(火) 21:44:20
>1.9.0が安定版だとか言ってる人
?
0673デフォルトの名無しさん2007/12/25(火) 22:25:08
1.9.x、のtypoなのかなぁ。
「出るのは1.9.0」からの繋がりが自己矛盾してる気が

さて23:00が楽しみになってまいりましたので
いまから一蘭のラーメン食って来る
0674デフォルトの名無しさん2007/12/25(火) 22:55:44
>>668
確認しました。
どうして出来るのか教えてくれませんか?
例えば標準ライブラリのmatrixでも
2次元のindexには[i, j]という形を採用しています。
[i][j]の方がずっと自然だと思うし、
大体ここでは2つの引数があるのに
その形ではひとつの引数しかもらっていません。
どういう理屈ですか?

それを教えてもらったら初心者スレに戻ります。
次に質問したいことは初心者スレ向けなので
0675デフォルトの名無しさん2007/12/25(火) 22:59:59
>>667みたいな書き方しといてよく質問できるなあ。
謝罪するってことを知らない引きこもりなのかなあ。
0676デフォルトの名無しさん2007/12/25(火) 23:05:18
引きこもりではありません。
正しい原理を教えてもらったら謝罪します。
■ このスレッドは過去ログ倉庫に格納されています