Ruby 初心者スレッド ..
575:デフォルトの名無しさん
08/09/06 13:47:49
宇宙大王の言い分
このスレ: 低学歴・無能の集まりなので分かってくれない
ML: モルモンなので分かってくれない
リアル: 大人は分かってくれない
アドバイス
あなたを分かってあげられるのはあなただけ。自分を大切にしてあげて。
576:デフォルトの名無しさん
08/09/06 13:52:49
はいはい。もう分かったから死ね
577:デフォルトの名無しさん
08/09/06 13:56:57
rubyを使うようなのはwebクーチャーとか言う職業の人たち、つまりITドカタでしょwwww
たーまにbsdとかも使ってるシステムの奥の方の人も居るけどwwwww
2chでIPAの愚痴を言うようじゃ、仕事も大したことやってないし、せいぜい雑用係のカス野郎ってことが良く分かるwwwwwwwwカスw
578:デフォルトの名無しさん
08/09/06 13:58:32
いや、IPAは無駄だろ。除法処理技術者の資格をもっていても、もっていなくても、別に金にならないし。
579:デフォルトの名無しさん
08/09/06 14:14:12
WEB開発とか雑魚だろ。しかも文系でどこにも就職出来なかったような雑魚だしな。
べつにrubyのCソースを追いかけてるわけでもないし、なんか生意気な奴が多いようだけど、雑魚だろw
いちど、みっちりCをやって、GCのソースとか見てみたらどうよ?雑魚ちゃんww
580:デフォルトの名無しさん
08/09/06 14:16:05
そんな雑魚相手に弱いものいじめしなくても…彼らは雑魚なりに一所懸命生きてるんだからさ……
581:デフォルトの名無しさん
08/09/06 14:19:16
>>340
いやいや、デンターシステマ超極細毛(かため)以外認めんぞw
582:デフォルトの名無しさん
08/09/06 14:23:01
僕だってれっきとしたWEBクリエーターだ!クリーチャーじゃないぞ!!
583:デフォルトの名無しさん
08/09/06 14:26:09
弱いものいじめ反対!
いつか必ず天罰が下るぞ!!
584:デフォルトの名無しさん
08/09/06 14:37:10
>除法処理技術者
煽りじゃなく「割り算のプロ」っぽくていいな。それ。
585:デフォルトの名無しさん
08/09/06 14:41:13
>>581
君、いつもつまんない
586:デフォルトの名無しさん
08/09/06 18:10:54
s="あい"#sjis
puts s.dump
dump以外に、
”あい”を文字コードの列(配列)にするのと、
その配列から”あい”(SJIS)に戻す方法はどうやるのでしょうか。
587:デフォルトの名無しさん
08/09/06 18:45:25
dumpのどのへんが不満? バックスラッシュが邪魔?
配列にならないところ? 数値が8ビット整数じゃないところ?
588:デフォルトの名無しさん
08/09/06 19:12:45
RUBY_VERSION >= "1.8.7" だったら
[*str.each_byte]
とかかな
589:デフォルトの名無しさん
08/09/06 20:02:53
あのーバイト列(特にバイト配列)からStringにするにはどうするんでしょうか?
packとかは無しですよw
590:デフォルトの名無しさん
08/09/06 20:04:01
dumpは、戻り値がStringなんでArrayじゃないし、たぶん外部用(serialization)じゃないですか?
なので、関数内部のローカルで処理する用途とは少し違います。
とくに、str[k]="あ"というかんじに出来るのないでしょうか?
結局ルビーは、パールと同じで日本語(多言語)対応じゃないしなんか使いにくいのでどうせなら、
jcodeでStringにアドオンなんかしないで組み込みクラスをrubyの方が用意したらどうですか?
class JapaneseString とかかな。
591:デフォルトの名無しさん
08/09/06 20:06:07
str.setJavaneseCharCodePointAt(index, "あ");
APIはこんなところでしょうか。
592:デフォルトの名無しさん
08/09/06 20:14:52
不覚にもJavaneseに吹いた
でも初心者スレを荒らすのは勘弁してね
593:デフォルトの名無しさん
08/09/06 20:20:11
javaを語る人はjavanese
594:デフォルトの名無しさん
08/09/06 20:39:48
いやいや、マジで困ってるんですが…
serializationは、dumpのStringはrubyだとtaint/untaintの腐ったレベルに影響あると思うんでdumpは外部用だと思います。
それでdumpは使えないので、他にsjis, euc, u16, u8とかの一文字をstrに追加できるセッターないですか?
595:デフォルトの名無しさん
08/09/06 20:49:09
matz.dump # ダンプ松本
596:デフォルトの名無しさん
08/09/06 20:58:56
Matzは神ですけど、matz は orz みたく凹んこで反省してるように見えませんか?
597:デフォルトの名無しさん
08/09/06 21:02:05
[*str.bytes]
↑↓
bytes.map{|b| b.chr }.join
だろうか
598:デフォルトの名無しさん
08/09/06 21:44:48
Javaneseってジャワ語という意味だったな
599:デフォルトの名無しさん
08/09/06 21:54:41
str.concatとarr.push使って自分で実装しました。
というか、スクリプトはテキスト(日本語)処理が主要な用途なんで、これぐらい(ライブラリ作成者側が面倒でも)当然用意しておくべきじゃないですか?
>>597
ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]
なんで無理です。あと、よくわかないんですけど、[*str.each_byte]は間接参照か何かですか?
イテレータとか使うといちいちAPIみないといけなくなって面倒なんで、この程度の処理はwhileで実装です。
というか、こういう処理はwhileで十分あって、関数ポインタやデリゲートの用途じゃあるまいし、イテレーターなんてカッコつけて使うもんじゃないですよw
600:デフォルトの名無しさん
08/09/06 21:57:48
>>589-591, 594
まず目的として何がやりたいのかを説明しろ
そこがわからないと適切なアドバイスもできん
601:600
08/09/06 21:58:56
ごめんね、スルーしなかった俺が悪かった
602:デフォルトの名無しさん
08/09/06 22:01:48
イテレーターは自分で作ったclassやライブラリーのデータ構造をイテレートするときのもので、
StringやArrayみたいな組み込みで汎用用途じゃ、あまり向かないじゃないでしょうかね。用意されてはいるが継承用かな。
といっても、Stringには一文字処理のget/set可能なイテレートを当然に用意しておいてもらえませんかね。
とくにbyteとchar用のsetがないじゃん。
603:デフォルトの名無しさん
08/09/06 22:08:42
1.9使えばいいんじゃね?
604:デフォルトの名無しさん
08/09/06 22:22:14
そろそろ飽きた
605:デフォルトの名無しさん
08/09/06 22:33:11
[*"foo".bytes].map(&:chr).join # => "foo"
なにコレ?
606:デフォルトの名無しさん
08/09/07 02:02:43
>>567
nil に対する比較演算は nil を返してほしい口?
つうか、なんで勘弁してほしいわけ?
607:デフォルトの名無しさん
08/09/07 02:35:21
全てがオブジェクトじゃなくていい派でしょ
608:デフォルトの名無しさん
08/09/07 03:13:47
>>602
>イテレーターは自分で作ったclassやライブラリーのデータ構造をイテレートするときのもので、
>StringやArrayみたいな組み込みで汎用用途じゃ、あまり向かないじゃないでしょうかね。用意されてはいるが継承用かな。
どこをどう見て、そう判断したんですか。
>といっても、Stringには一文字処理のget/set可能なイテレートを当然に用意しておいてもらえませんかね。
>とくにbyteとchar用のsetがないじゃん。
Ruby1.8では、文字列はただのバイト列なので、Javaのように文字単位での扱いはあまり得意じゃありません。
ただ、文字単位で扱わなくても済む場合がほとんどなので、あなたが「1文字ずつ扱って何をしようとしているか」をまず書いてみてください。
きっとだれかが、1文字ずつではない処理方法を提示してくれると思います。
それから、全般的に日本語に不自由されているようですが、もっと人に伝わるような文章を書いてください。
エスパーするにも限度があります。
609:デフォルトの名無しさん
08/09/07 03:25:03
>>606-608
>>564
610:デフォルトの名無しさん
08/09/07 04:00:37
>>608
質問者に、質問し返す人いますが、あなたは少ししつこい。
あなたのプログラミングスタイルと全く違う人もたくさんいるんですけど、あなたは一生Webクリーチャーでいいんで、黙っててくれませんか?
一文字の処理を所望なのに、一文字の処理じゃない方法を提示する必要はないでしょ。
あなたに仕事を任せても、全く仕様を読まないでいつも失敗ばかりしてるんだろうと思うんで、あなたはその辺にいるゴミか何かでしょうか?
とにかくVBとかの方が儲かりますよ。
611:デフォルトの名無しさん
08/09/07 04:10:34
>エスパーするにも限度があります。
>>608を読んでみても、おまえが無能なのがよく分かるな
おまえのエスパーなど誰も期待してないけど?
612:デフォルトの名無しさん
08/09/07 04:13:57
たぶん>>608は低学歴で脳みそ文系ちゃんだから相手しちゃダメ。
いつまでもこのスレに居座っていてみんな迷惑してんだからw
613:デフォルトの名無しさん
08/09/07 05:38:13
>>608
モルモン教に入信したいなら、まずは創価学会を脱退してからですよ。
614:デフォルトの名無しさん
08/09/07 05:45:54
>字単位で扱わなくても済む場合がほとんどなので
split(//)とかで結局文字単位になるんだし、文の前後が矛盾してるじゃん。
こいつは何のことをいってんだ?
それと、Javaは文字単位char[]でなくてStringで処理しますが、知らないことに無駄口しない方がいいんじゃないですか?
日本語の文法から勉強なさった方がいいんじゃないですか。
615:デフォルトの名無しさん
08/09/07 05:55:02
だから文系プログラマーにかまうな。思考盗聴されて頭おかしくされちゃうぞ!
616:デフォルトの名無しさん
08/09/07 06:31:32
思考盗聴か…層化じゃ当然だよな……
617:デフォルトの名無しさん
08/09/07 07:01:15
仕事してんのに一人でも女がいるとホント面倒だよなwww
女は端っこでマンコの手入れでもして、いつでも準備OKにしてればいいんじゃね?
618:デフォルトの名無しさん
08/09/07 08:17:32
>>608
落ち着け
こんな時は冷静にスルーだ
619:デフォルトの名無しさん
08/09/07 09:13:37
さすがにプログラマに女はいないだろw
数学の女、哲学の女、以上にキモイな。
仮に想像したとしても、頭モサモサのフケだらけ、体臭はニンニク臭いなんじゃないの?
そんなキモ女はどこで道を間違っちゃったんだろうな…
620:デフォルトの名無しさん
08/09/07 09:22:41
catch io exception
621:デフォルトの名無しさん
08/09/07 11:31:25
>>617
俺もそう思う。
まず連中は論理的に説明しても理解しない。「できない」じゃなくて「しない」なんだよ。
生意気にも「いいじゃないですか〜」とか言ってて許されるとか思ってる。
「俺が上司なんだよ!!!なめんなよ首にすんぞ」
とか思っても労働法違反になるので言わないです、ごめんなさい。
ついて行きたいと思わせる男の魅力が足りないのでしょうね、ごめんなさい。
そういえば、大学時代も「いい人」止まりだったなぁ・・・
付き合ったは良いけど卒業後すぐに分かれたなぁ・・・
一回しかえっちしてないよ・・・ちなみに童貞×処女
622:デフォルトの名無しさん
08/09/07 11:32:56
>>619
と思いたいんですね
623:デフォルトの名無しさん
08/09/07 11:51:51
引数 param で受け取ったものが配列でも「 1個」でも each で同様に回したい、という場合
param.to_a.each do |e|
...
と書くのが単純だったと思うんですが、
warning: default `to_a' will be obsolete
とか生意気で妥当な警告が出ます。
わりと頻繁に使うメソッド内でのことなんですが、どう対処するのが自然ですか?
param = [param] unless param.is_a?(Array)
と書くべきですか?
「このメソッドは配列しか受け取らないので 1個だけのときは事前に hoge([para]) にしろ」
とマニュアルレベルで警告するべきですか?
624:デフォルトの名無しさん
08/09/07 12:11:16
>>623
配列かどうか調べて、配列じゃない場合は配列に入れるという動作が "正しい"
もしくは、マニュアルなどで「配列しか受け付けません」と明記する
[*param].each do |e| とすると文字数減った上に見かけ動作も一緒だが、無駄に穴掘って埋めてる感じが超キモい
これはそもそも
irb> def disp(param); param.to_a.each{|e| puts e }; end
irb> disp('hoge')
hoge
irb> disp(1)
(irb):1: warning: default `to_a' will be obsolete
1
irb> class Integer; def to_a; [self]; end; end
irb> disp(1)
1
ということで、「オブジェクトを to_a する意図が不明瞭なので頼るな」という意図の警告だ
obj.to_a と [obj] が同じとは限らないし、違うことのほうが妥当なこともある
配列の要素にしたいのなら、to_a ではなく明示的に配列作ってそこに入れろという話
irb> Time.now
Sun Sep 07 12:01:10 +0900 2008
irb> Time.now.to_a
[14, 1, 12, 7, 9, 2008, 0, 251, false, "JST"]
irb> [Time.now]
[Sun Sep 07 12:01:18 +0900 2008]
625:デフォルトの名無しさん
08/09/07 12:13:26
PGやSEとか頭脳労働なら、女がいるような職場には行きたくないな。
電話オペとか事務とか誰がやっても同じなら男女雇用機会もわかるけど、
女のセンスとか女のやさしさなど、PGやSEにまったく不要で逆にあると面倒なんじゃないか?
受付や事務で雇うならともかく、女をPGやWEBデザインで雇うようなところは資本もないし
金も技能もないベンチャーはすぐ潰れるのがおちw
今のベンチャーの生き残り方法は、創価学会と手を組むか、堀江豚みたく株屋とつるむぐらいしかないんじゃないの?
626:デフォルトの名無しさん
08/09/07 12:13:28
[ param ].flatten(1)
flattenの引数ってどのバージョンからだったかのう。
627:デフォルトの名無しさん
08/09/07 12:15:21
おまいらの妄想には飽きたぜ。
いい加減どっか外にいけ
628:デフォルトの名無しさん
08/09/07 12:22:16
いまでは「Webデザイン」とかかっこ良さそうな臭いがしますが、海外のスクリプト言語
紹介ではJavaScript(とその亜種)の人口は多くPerlなどが続くと紹介されますが、
2008年現在、そのなかにrubyの文字は一度も出てきません。
しょせんrubyは、(にっぽんの)文系 IT ドカタ専用なんです!
犯罪囚人の女も使ってます!
コミュニティーはモルモン教です!
負け組みの人たちが都合よく集まったというところでしょうか…
ライブラリは冗長が多いけど言語の出来はいいんですけどね……
629:デフォルトの名無しさん
08/09/07 12:27:01
言語側がto_a, to_i とか用意しといて下位互換を無くすようなこと一度でもすると、もうそういう言語・ライブラリは信用されないんじゃないか?
OOや継承をなんだと思ってんだ?
>ということで、「オブジェクトを to_a する意図が不明瞭なので頼るな」という意図の警告だ
obj.to_a と [obj] が同じとは限らないし、違うことのほうが妥当なこともある
これを公式レファレンスに記載すればよろしい
630:デフォルトの名無しさん
08/09/07 12:35:34
>>626
1.9のどっか
631:デフォルトの名無しさん
08/09/07 12:35:44
確かにruby使ってる人たちがexcel,word出身のナンチャッテばかりだと、そんなやつらと話があうはずないな。
632:デフォルトの名無しさん
08/09/07 12:51:44
excel,wordすらまともにry
633:デフォルトの名無しさん
08/09/07 12:52:10
arr=[11,22,33]
puts *arr
puts &arr
マニュアルみてもないんですが、* & これは演算子ですか?
634:デフォルトの名無しさん
08/09/07 12:55:44
blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45334
からのスレッド参照
635:デフォルトの名無しさん
08/09/07 12:56:58
怪しいソフトハウスは五万とあるが胡散臭いからすぐ分かる。たいてい、そういうところはDQNしかいないし長くても5年で潰れる。どう考えてみても、文系乙だな
636:デフォルトの名無しさん
08/09/07 12:59:12
>>634
演算してるわけじゃないしな
展開記号とでも呼べばいいのかしら
637:デフォルトの名無しさん
08/09/07 13:09:04
* & ですけど、関数引数なら演算子とは呼ばないけど、式文中なので演算子ですよ。
リンク先のMATZ本人はその意味で言ってるんですけど、たぶんこのスレレベルだと理解できないんでしょうね。
やっぱ文系用スクリプトを使うお気軽ルビリストには、その程度の理解度でいいんでしょうか?
638:デフォルトの名無しさん
08/09/07 13:12:42
理解できない人はC言語をみっちりやってくださいなw
639:デフォルトの名無しさん
08/09/07 13:24:26
背伸び with マニュアル のスレはここですか?
640:デフォルトの名無しさん
08/09/07 13:45:03
いいえ、基礎を積むスレです。
641:デフォルトの名無しさん
08/09/07 14:53:17
配列の中での*はlispでの準クオート中の式を,@付けて評価→展開するものが元ネタっぽい。
だけど関数定義のときに引数定義の中で使われると、
lispの引数リストで使われる&restとか ...みたいな可変長引数みたいになる、ややこしいな。
&付きでProcを呼び出すものはなんだろう、C++のメンバ関数ポインタ?
def foo(*x)のときの*x言うのはrest引数構文
puts *arrの*arrは展開構文
puts &arrの&arrはProc変数渡し構文
Matzも*や&単体では意味が無いって言ってるし、こんなのでいいんじゃない?
さらにこういう前後の状況によって決まる類の「なんとか構文」なんてものは、
仕様書のある言語ではよくあるものだし。
642:デフォルトの名無しさん
08/09/07 15:00:53
Rubyとか超ウケル
643:デフォルトの名無しさん
08/09/07 15:23:21
puts &arr ってするとエラーが出るんですけど。。。
(ruby 1.8.6 (2007-06-07 patchlevel 36) [i386-mswin32])
wrong argument type Array (expected Proc) (TypeError)
644:デフォルトの名無しさん
08/09/07 15:40:31
エラーが出ていいんだよ。エラーを読める程度の英語をちゃんと身につけないとねw
645:デフォルトの名無しさん
08/09/07 15:44:12
「文系 Web 2.0」 じゃ、やっぱ話題について来れないんだろうな…
java.net(英語)にも妄想オタクな奴が多いけど、サーバ・サイドだから学歴は高い奴多いしくおかしな文章を書いたりしないな。
だけどrubyは無能な文系ばかりしかいないようだ…メーリングをググってもゴミのごたくばかりだろ…
Matzはいつも大変だな…
646:デフォルトの名無しさん
08/09/07 15:45:04
>>644
あっ、エラーでいいんですか。
みなさん、とうとうと解説されているので、てっきり意味のある文だと思いました。
647:デフォルトの名無しさん
08/09/07 16:03:30
>>646
>>633を構ってないだけだ
648:デフォルトの名無しさん
08/09/07 16:07:49
>>641
文法上サポートしている構文というなら別にそれで文句はないですが、マニュアルに書いといてください。
p [*[11,22,33]] が出来るところを見ると、単項式として値を返すので、言語上の分類としては演算子じゃないかなと思います。
649:デフォルトの名無しさん
08/09/07 16:14:26
>>646-647
君たちはprocを理解してないのに偉そうにしてていいの?もっと一所懸命に勉強しないと!
650:デフォルトの名無しさん
08/09/07 16:29:34
>>648 の笑いどころ
lisp という単語出てきたとたん、腰が引ける。
2ch に来て「マニュアルに書いといてください。 」
理系の高学歴様は、ギャグのセンスもさすがだなw
651:デフォルトの名無しさん
08/09/07 16:45:51
>>646
そんなことよりおマンコはちゃんと洗っといた方がいいですよ。いつ何があるかわからないし・・・
652:デフォルトの名無しさん
08/09/07 16:48:00
変数名がかぶっても、ブロックの中だけ有効にするにはどうすればいいのでしょうか?
a = 1
1.times do
a = 2
end
puts a # 1になって欲しい
653:デフォルトの名無しさん
08/09/07 16:52:22
それよりも >>641がC++どころかCすらも理解してないのにはビックリした!
654:デフォルトの名無しさん
08/09/07 16:54:20
質問なので、age失礼します。
携帯でGoogle chartを使おうと、以下のようにchartのアドレスをhtmlに埋めました。
puts <<-EOD
<html><body>
<img src="URLリンク(chart.apis.google.com)">
</body></html>
EOD
結果、auやvodaphoneでは見えたのですが、docomoではグラフが見えません。そこで調べてみると、docomoではpngを読まないため、gifにコンバートしろとのこと。
URLリンク(ke-tai.org)
しかし、Rubyで同様のコンバートを行うにはどうしたら良いか、そしてどうやってhtmlに埋め込んでいいかわかりません。やり方が乗っている場所でも結構ですので、どなたか教えていただけませんか。よろしくお願いいたします。
655:デフォルトの名無しさん
08/09/07 16:58:35
>>652
>>649
656:デフォルトの名無しさん
08/09/07 17:12:31
>>652
変数名がかぶってる限りは無理
ちゃんと違う変数名で定義するしかない
657:デフォルトの名無しさん
08/09/07 17:20:44
>>656
そうなんですか。
Perlのように、局所化するmyとかはないんですね。。。
658:656
08/09/07 17:21:10
追伸
初心者スレの範疇を外れるけど、現在のruby1.9.0系(開発版)では
ブロックローカルな変数を定義する(=名前がかぶっても問題ない)文法がある
たぶんruby1.9.1にも入るはず
659:デフォルトの名無しさん
08/09/07 17:25:32
>>656-658
やっぱり、このレベルなのか…
660:デフォルトの名無しさん
08/09/07 17:36:39
>>658
今後のRubyには実装される予定なんですね
了解しました。
661:デフォルトの名無しさん
08/09/07 17:44:55
ローカル変数として同じの使ってるぶんには被るの許容するしかないな
まあ不便っちゃ不便
662:デフォルトの名無しさん
08/09/07 17:46:54
クロージャとかイテレーターって知ってる?
663:デフォルトの名無しさん
08/09/07 17:49:18
JRubyでYAML使おうとしています。
日本語をdumpすると"\343\203\206\343\202\271\343\203\210"な感じで出力されてしまいます。
RubyのSyckでも日本語をバイナリとして扱ってしまうという、似た感じの問題があり、
パッチやら何やら書かれているようですが、
JRuby(JvYAML?)において日本語文字列のまま出力させる方法はありませんでしょうか?
664:デフォルトの名無しさん
08/09/07 18:02:09
>>663
Ya2YAML
JRubyで試したことはないが、pure rubyだからたぶん動くんじゃないかな
665:663
08/09/07 18:18:46
>>664
どうもありがとうございます。
でも、Ya2YAMLはSyck用のバイナリ認識するとこを修正なんだそうです。
JRubyの場合はJvYAML(JvYAMLb)だそうですので、Pure Rubyか否かは関係なさそうです……。
URLリンク(gihyo.jp)
日本語全然使えない、とか書いてあるところもあったりして。
普通に表示したりする分には問題無いのですが、可読性という意味で言うと価値が激減。
dumpすると頭に"---"がつく辺りもRubyの最新版と挙動が違ったりするのですよね。細かいですが。
Javaのライブラリを使っていなければRubyを使うのですけれども……。
666:デフォルトの名無しさん
08/09/07 18:19:14
>>654
ImageMagickプログラムを使うか、それをRubyから使うRubyMagickを使う
自分のサーバに「Google Chartにデータ渡して結果を受け取りGIFに変換して画像を吐くCGI」として置くしかないな
667:654
08/09/07 18:36:53
ありがとうございます。
なるほど、直接コンバートできるような手立ては無いということですね。
では、画像吐き専門のcgiを作ることにします。
(PHPでやるかもです)
668:デフォルトの名無しさん
08/09/07 18:39:30
>>665
楽してないでそれぐらい自分で実装したらどうよ?
669:663
08/09/07 18:52:47
>>668
すみません。スキルがゴミなもので、解決策が自分だけの力では思い浮かばず、
一週間程悩んだ挙げ句に、こうして初心者スレで質問させていただいている次第です。
実装、というのはYAMLのパーサを実装ということでしょうか?
言語内DSL(もどき)を作って、YAMLを使わない方法に逃げることは一応考えているのですが……。
670:デフォルトの名無しさん
08/09/07 18:56:36
いつも「おっきいチンチン」のこと想像しながらWebしてます!
671:デフォルトの名無しさん
08/09/07 19:11:23
YAMLをあきらめてJSONを使う。
672:デフォルトの名無しさん
08/09/07 19:20:17
YAMLで作ったデータをどこに持ってくのかにもよるな
673:デフォルトの名無しさん
08/09/07 19:25:19
>>665
Ya2YAMLのソースコード読んでみたが、Syckに依存してるらしきところはないよ
だからSyckかJvYAMLかは関係ないはず
674:663
08/09/07 20:16:56
>>664 >>673
う、すみません。Ya2YAMLをちょっと勘違いしていました。
ちゃんとソース読んできます。どうもありがとうございます。
675:デフォルトの名無しさん
08/09/07 20:30:49
ゴミなんでしょ?もう来るな。
676:デフォルトの名無しさん
08/09/08 00:13:21
コテつけろよ
677:デフォルトの名無しさん
08/09/08 15:11:49
デンターシステマのかためより、やらかめの方がいいですよ。
どうせ堅めを使っても歯ぐきから血が出るだけなんで。
678:デフォルトの名無しさん
08/09/08 17:27:16
歯ぐき弱すぎじゃね・・・?
個人差は有るだろうけど、
いっぺん歯科で相談してみたほうがいい。
679:デフォルトの名無しさん
08/09/08 17:42:29
普通は1から10まで足して55になるんですが、逆に10から9,8と足していく文はどうなるんでしょうか。
680:デフォルトの名無しさん
08/09/08 18:03:12
やっぱり55になります
681:デフォルトの名無しさん
08/09/08 18:23:32
逆から足して同じ結果にならないなら大発見かもしれん
682:デフォルトの名無しさん
08/09/08 18:25:57
BEとLEで結果が違います
683:デフォルトの名無しさん
08/09/08 18:30:58
>>681
多項式級数式ではそういうことがよく起こりますが…もしかして無能?
684:デフォルトの名無しさん
08/09/08 18:46:45
どっちが頭いいかをふっかけてくる奴がいっちゃん無能
685:デフォルトの名無しさん
08/09/08 18:57:42
無能はすぐage進行にしたがるww
686:デフォルトの名無しさん
08/09/08 18:58:12
>>679
よくわからんけど、こんなのかな。
i = 10
sum = 0
while i > 0
sum += i
i -= 1
end
i = 0
sum = 0
while (i += 1) <= 10
j = 10 - i
sum += j
end
sum = 0
(1..10).to_a.reverse.each {|i| sum += i }
687:デフォルトの名無しさん
08/09/08 19:01:41
downto
688:デフォルトの名無しさん
08/09/08 19:05:54
ruby1.8.7きめぇえええええ
[*(1..10)].reverse.inject(0,&:+) # => 55
689:デフォルトの名無しさん
08/09/08 19:15:31
&:+って何?
690:デフォルトの名無しさん
08/09/08 19:19:51
みなさん、ありがとうございます。
ちゃんと55になりました。
逆走もあったんですか…
691:デフォルトの名無しさん
08/09/08 19:21:59
>>688
これは可読性以前の数学パズルの世界じゃないの?
rubyのキモさは、Cのポインタをほうふつさせるキモキモだなw
692:デフォルトの名無しさん
08/09/08 19:25:02
委譲の英訳ってtransferでいいの?
辞書だとそうなってるけどプログラミングでもそうなん?
693:デフォルトの名無しさん
08/09/08 19:27:54
>>692
オブジェクト指向における委譲はdelegation
694:デフォルトの名無しさん
08/09/08 19:31:54
サンクス
delegateってメソッドポインタの事かと思ってたけど
委譲の意味でも使うのか。
695:デフォルトの名無しさん
08/09/08 21:19:05
>>694
C#のやつのことなら、delegateをそういう機能に使うキーワードにしたって
だけで、突き詰めた意味は結局委譲。
696:デフォルトの名無しさん
08/09/08 21:28:31
めそっどぽいんたってなんじゃらほ
697:デフォルトの名無しさん
08/09/08 21:37:20
(1..10).reverse_each.inject(:+)
698:デフォルトの名無しさん
08/09/08 22:00:35
>>696
C#を調べろ、としか言いようがない。
要するに関数ポインタのC#版。
699:デフォルトの名無しさん
08/09/08 22:08:03
>>696
特定のインスタンスの特定のメソッド(GUI部品とか)を呼び出すためのポインタ
特定のクラスのオブジェクトにメソッド実行を依頼すると考えれば根っこは同じ
という説明はどうだろう
700:デフォルトの名無しさん
08/09/08 22:18:00
わっかりやすいのう
701:デフォルトの名無しさん
08/09/09 02:18:37
質問です
関数オブジェクトと普通の関数を呼び出すときのコストってどちらも同じですか?
702:デフォルトの名無しさん
08/09/09 02:41:11
・Rubyには厳密な関数はない
・Rubyには関数オブジェクトもないっていうかまあこのへんは別にいいや
てことで、普通のメソッド定義とProc(lambda)オブジェクトの比較と読み替える
Procの呼び出しコストの重さは異常
以上
使うと面倒な概念をとても簡潔に表現できるけど、多用すると明らかに遅くなるので注意
便利なのでほいほい作る傾向にあるが、何度も使う部分に組み込む場合は、できれば丁寧に分析してメソッドにしたほうがいい
703:デフォルトの名無しさん
08/09/09 06:12:15
Rubyってメソッドもオブジェクトなの・・・?
704:デフォルトの名無しさん
08/09/09 06:44:11
>>703
オブジェクト化することもできる
705:デフォルトの名無しさん
08/09/09 07:23:00
そんなことしたマンコは臭うけどな
706:デフォルトの名無しさん
08/09/09 08:30:13
javascriptバカにすんな
707:デフォルトの名無しさん
08/09/09 08:32:52
臭いのは勘弁して・・・
708:デフォルトの名無しさん
08/09/09 09:08:56
javascriptはコンソールから起動して使える実装がないじゃん。ここ、バカ丸出しww
709:デフォルトの名無しさん
08/09/09 09:09:38
毎日が夏休み
710:デフォルトの名無しさん
08/09/09 09:17:50
>>703
ブロックつきメソッドの {|x| ...} 部分を「持ち歩ける」と考えてもらうと間違いない
711:デフォルトの名無しさん
08/09/09 09:24:09
>>708
>javascriptはコンソールから起動して使える実装がないじゃん。ここ、バカ丸出しww
spidermonkeyもrhinoもコンソールから起動できるじゃん。
バカ丸出しはおまえwww
712:デフォルトの名無しさん
08/09/09 09:38:26
javascriptは組み込み向けの設計ってこと忘れてるおまえは、バカ丸出しww
713:デフォルトの名無しさん
08/09/09 11:25:13
話題のv8のshellが普通にいい感じですよ
714:デフォルトの名無しさん
08/09/09 11:33:16
個人の著作を売り物にするようなところだしmixiと同じだな。
そのうち違う波が来て潰されるんだろうな…
715:デフォルトの名無しさん
08/09/09 11:40:34
>>702
そうなんですか。
昨日からruby勉強し始めて、全部関数オブジェクトにしたら一貫性あるかな?
とか思っていたんですが、重いなら仕方ないですね。。
716:デフォルトの名無しさん
08/09/09 11:45:08
全部ラムダ式にすればいいと言うわけですね
717:デフォルトの名無しさん
08/09/09 12:07:13
質問です。
配列のmap関数で適用する手続きの代わりに関数オブジェクトを使うことはできませんか?
718:デフォルトの名無しさん
08/09/09 12:18:26
関数オブジェクトって何ですか?
Procオブジェクトですか、ブロックですか?
719:デフォルトの名無しさん
08/09/09 12:23:08
たとえば、
hoge = lambda{|x| x+1}
このhogeという値にバインドした関数オブジェクトをmapで使うことはできませんか?
720:デフォルトの名無しさん
08/09/09 12:26:52
(1..10).map &hoge
721:デフォルトの名無しさん
08/09/09 12:32:47
>>720
おお、すばらしいです
では、次の質問ですが、
関数オブジェクト同士で関数合成ってどうやるんですか?
722:デフォルトの名無しさん
08/09/09 12:37:10
procとlambdaで作ったオブジェクトってイマイチ分からないのですが、簡単に言えば何が違うんですか?
723:デフォルトの名無しさん
08/09/09 12:46:54
URLリンク(www.hinet.mydns.jp)
724:デフォルトの名無しさん
08/09/09 12:49:57
>>721
例えばこんなのがある
Function Composition 2.0 Ruby Banter #006
URLリンク(media.fngtps.com)
725:デフォルトの名無しさん
08/09/09 13:04:29
>>721 >>722
そのオブジェクトは Proc オブジェクト
違いはこのへんに URLリンク(doc.loveruby.net)
726:デフォルトの名無しさん
08/09/09 13:10:13
「関数オブジェクト」なんてないということをとりあえず前提として話してくれ。
なんで執拗に「関数オブジェクト」と言い続けるんだ?
727:717=721
08/09/09 13:10:26
>>721と>>722は別人です
728:デフォルトの名無しさん
08/09/09 13:12:54
func do |x| p x end
func { |x| p x }
の違いでしたか・・・
729:デフォルトの名無しさん
08/09/09 14:22:21
質問です
ある変数の型が何なのか調べる方法はありますか?
730:デフォルトの名無しさん
08/09/09 14:37:19
質問です。
hoge = Array.new(10){|i| i}.map{|x| x+1}
と
hoge = Array.new(10){|i| i}.map!{|x| x+1}
ではリソースの使い方に違いがありますか??
731:デフォルトの名無しさん
08/09/09 14:41:59
732:デフォルトの名無しさん
08/09/09 14:44:20
>>729
Rubyの変数には型はありません
733:デフォルトの名無しさん
08/09/09 14:47:11
>>732
では、たとえば配列の要素をすべて足す関数を作って、
整数と文字が入り交じった配列を渡してしまった場合はどうなるんですか?
734:デフォルトの名無しさん
08/09/09 14:48:14
配列の要素の型に応じて違う処理をさせる方法はありませんか?
735:デフォルトの名無しさん
08/09/09 14:48:49
精子はやっぱり飲んじゃった方がいいかな?
736:デフォルトの名無しさん
08/09/09 14:52:28
>>732
型が無いというのも誤解を生む表現だと思うのですが、
ではどのオブジェクトのインスタンスなのか調べる方法は無いんでしょうか?
737:デフォルトの名無しさん
08/09/09 14:53:56
>>730
メモリとかを気にするのに Array.new に引数をつけてる人は久しぶりに見た
nil が 10個生成されて直後に置き換えられるから最初のArray.newが一番無駄なんじゃね
で、map と map! の差だけで、見たままの動作で、見たままのメモリ消費だと思われる
配列要素が 1万個とかバカみたいに多いときは後者のほうが一瞬だけ若干得
ただ、後者のような書き方はあまりしないかな
738:デフォルトの名無しさん
08/09/09 14:54:09
どのクラスのインスタンスなのか、でした。
739:デフォルトの名無しさん
08/09/09 14:56:26
>>736
型はない
a = 10 したあとに a = 'str' としても動作する以上、変数に型は無いと言って差し支えない
で、オブジェクトがどのクラスに属しているかはclassメソッドを使うとわかる
740:デフォルトの名無しさん
08/09/09 14:56:36
>>730
前者は配列が2個作られる。後者は1個だけ。課題か何かか?
>>733
足せないものを足そうとした時にエラー
>>734
kind_of? で仕分ける
741:デフォルトの名無しさん
08/09/09 15:00:56
Rubyの変数は本気でただのラベルだからな
他の言語では変数はいわゆる箱のようなメタファで説明できて、箱には形が決まってたりするもんだが
>>734
動作一緒だが、kind_of? ではなく is_a? を勧めたほうがよいと思う
742:230
08/09/09 15:07:39
>>740
課題ではありません。
昨日からruby勉強中なんですよ。
夏休みだけど暇なんで。
743:デフォルトの名無しさん
08/09/09 15:08:01
このスレの住人は糞ばかりだし、飲んじゃった方がいいよw
744:230
08/09/09 15:10:45
>>737
最適化してはくれないんですね。
745:デフォルトの名無しさん
08/09/09 15:11:17
>>733
要素が順番に問題なく + メソッドに渡される
不適なオブジェクトが + メソッド内(で使ってる他のメソッド)でチェックされているなら、
TypeError か何か決められた例外が発生してそこで処理が止まる
ある意味めんどくさいとも言えるな
だから、「要素に数値だけが入っていることを配列登録時にチェックするArrayクラス」のようなものを作ったりする
746:230
08/09/09 15:13:53
>>745
なるほど。
静的型付け言語に慣れているせいで、ちょっとその辺はぎこちなくなります。
747:デフォルトの名無しさん
08/09/09 15:14:33
>>744
「どうせ直後で数値が全要素に代入されるんだから最初に nil 入れるのやめようぜ、
あ、ちょっと待って、map が続いてるからそれもまとめて 1回で処理しよう」
という判断は Ruby はしない
というか無茶言うな
そういうのはスクリプト作成者が事前に考えてくれ
748:デフォルトの名無しさん
08/09/09 15:16:32
nilの実装はintの0x00だけど?
749:デフォルトの名無しさん
08/09/09 15:19:27
>>747
遅延評価のHaskellなら朝飯前なんだがな
750:デフォルトの名無しさん
08/09/09 15:20:40
あのー横から失礼しますが、
rubyの有用なサンプル・スクリプトはどこかにないでしょうか?
751:730
08/09/09 15:22:01
>>737
度々すみません。
たとえば1〜1000が順番に格納されている配列を生成するのに効率的な方法を教えてください
752:デフォルトの名無しさん
08/09/09 15:24:33
>>751
(1..1000).to_a
753:730
08/09/09 15:25:58
>>752
ありがとうございます
754:デフォルトの名無しさん
08/09/09 15:27:54
>>748
んなこと言ったら文字列は全部ただのバイト列だぞ(1.8限定)
755:デフォルトの名無しさん
08/09/09 15:28:26
>nil が 10個生成されて直後に置き換えられるから最初のArray.newが一番無駄なんじゃね
こういうのは、こいつの妄想じゃね?
756:デフォルトの名無しさん
08/09/09 15:31:24
>rubyの有用なサンプル・スクリプトはどこかにないでしょうか?
どういうのを求めてるのかよく分からんが
「逆引き Ruby」でぐぐったら幸せなんじゃないかな
757:デフォルトの名無しさん
08/09/09 15:37:25
そういう逆引きじゃなくて、文字を数えるwc伝統的プログラムが集まったサンプル集です。
"hello world\n"の延長みたいなものなんですが、どこにもないんでしょうか?
758:デフォルトの名無しさん
08/09/09 15:40:53
>>757
意図はわかった
Rubyコミュニティとしては特にないので、個人で書かれた入門ページでも適当に探すといい
もとろん間違ってる可能性もあるが、初学者ならおそらく同じように間違うわけでそれはそれで意義があるだろう
というか、そういうのがきちんとまとまったページってのは他の言語でも稀なんじゃないかなー
あれば楽しそうな気もするけどね
759:デフォルトの名無しさん
08/09/09 15:44:54
あのー・・・・rubyは初めて触るんですけど、他の言語はバリバリ使いwwなんですが・・・・・・・・・
760:デフォルトの名無しさん
08/09/09 15:45:45
>>750 サクれ
761:デフォルトの名無しさん
08/09/09 15:47:28
昔は「○○コマンドのクローンを作ってみよう」というのは教材としてわかりやすかったんだけどね
今はCUIコマンド自体の使用頻度が少なくて
「wcってなんですか?」
「いったいどういうときに使うんですか?」
「コマンドまたはファイル名が違いますって表示されました」
という状態で
762:デフォルトの名無しさん
08/09/09 15:49:18
>>741
> >>734
> 動作一緒だが、kind_of? ではなく is_a? を勧めたほうがよいと思う
Rationalきぼんぬ。ピッケル本のどこかに書いてあったっけ?(ふとそんな気がしないでもない)
763:デフォルトの名無しさん
08/09/09 15:57:09
一応K&Cとかさくっと読んじゃったんですけど・・・ないですか。
日本語だと公式サイトの説明も適当だし(文章を書くのが面倒なんでしょうけど)、それなら有用なサンプルがあると理解が深まるんじゃないのかなと…
764:デフォルトの名無しさん
08/09/09 15:58:45
ごっちゃになってたけど、CのK&Rでした。C言語教徒には失礼・・・
765:デフォルトの名無しさん
08/09/09 15:58:59
K&C・・・ああ、ケンタッキーとチキンのことか。
766:デフォルトの名無しさん
08/09/09 16:01:32
モルモン教教徒はすぐ我慢汁が出ちゃうのがなんともねぇw
767:デフォルトの名無しさん
08/09/09 16:07:45
K&Rは難しすぎでさくっとなんか読めないよ。
あの超難しいといわれてる「ポインタ」を当然知ってるって前提だろうが。
768:デフォルトの名無しさん
08/09/09 16:16:59
ポインタを超難しいと言っている人を久しぶりに見た。
ああ、教鞭を執らなくなって結構経つなぁ・・
769:デフォルトの名無しさん
08/09/09 16:19:13
>>748
nilの実装はunsigned longの4だが?
環境によってはunsigned longじゃなくてもっと大きい型のこともあるが。
770:デフォルトの名無しさん
08/09/09 16:19:35
K&Rを難しいと言っているぐらいだからHaskellの遅延評価やモナドなんか常軌を逸するだろうな。
771:デフォルトの名無しさん
08/09/09 16:20:26
>>766
モルモン教とRubyにどんな関係があるんですか?
前々から気になっていましたが。
772:デフォルトの名無しさん
08/09/09 16:21:57
大多数の大学生のような集団にとってきちんと理解しようとする場合「超難しいと言われてる」でいいと思う
773:デフォルトの名無しさん
08/09/09 16:22:11
>>770
というか、Cのポインタが難しくてLispに逃げたくせに偉そうにするなww
774:デフォルトの名無しさん
08/09/09 16:26:14
にわかC使いがLL言語を叩くスレ
775:730
08/09/09 16:28:05
$ time ruby -e 'test = Array.new(100000){|i| i}'
real 0m0.220s
user 0m0.120s
sys 0m0.100s
$ time ruby -e 'test = (0..100000).to_a'
real 0m0.130s
user 0m0.120s
sys 0m0.010s
本当ですね。
776:デフォルトの名無しさん
08/09/09 16:35:27
>>775
それ、どういう処理なのか理解してないでしょ?笑えるんだけどw
777:デフォルトの名無しさん
08/09/09 16:36:26
>>771
Ruby開発者がばりばりのモルモン教
778:デフォルトの名無しさん
08/09/09 16:37:03
まあ、どうあがいたってポインタは難しいからね・・・
779:デフォルトの名無しさん
08/09/09 16:40:38
>>770
先生はモルモン教さんですか?
780:730
08/09/09 16:40:58
>>776
どういうメソッドが使われたかはプロファイラを使えばわかるみたいですね。
$ ruby -r profile -e 'test = (0..100000).to_a' % cumulative self self total
time seconds seconds calls ms/call ms/call name
100.00 0.08 0.08 1 80.00 80.00 Range#each
0.00 0.08 0.00 1 0.00 80.00 Enumerable.to_a
0.00 0.08 0.00 1 0.00 80.00 #toplevel
$ ruby -r profile -e 'test = Array.new(100000){|i| i}' % cumulative self self total
time seconds seconds calls ms/call ms/call name
100.00 1.15 1.15 1 1150.00 1150.00 Array#initialize
0.00 1.15 0.00 1 0.00 1150.00 Class#new
0.00 1.15 0.00 1 0.00 1150.00 #toplevel
781:デフォルトの名無しさん
08/09/09 16:47:27
そういえば、さっきの妄想君は死んだのか?
782:デフォルトの名無しさん
08/09/09 16:50:15
K&Rのサンプル集とか面白かったんで、これと似たようなサンプル(課題)を是非コミュニティーでやってください!お願いします!
783:デフォルトの名無しさん
08/09/09 16:50:38
ブロック使う方は毎要素でyieldしてるからその差じゃね?
784:デフォルトの名無しさん
08/09/09 17:06:24
>>782
Rubyのサンプルに限らず他言語でのサンプルをRubyで書いてみたらいいんじゃね
785:730
08/09/09 17:09:44
大まかにrubyのことがわかってきたので自己テストのためにリバーシプログラム書いてみますね。
786:デフォルトの名無しさん
08/09/09 17:14:10
str=""
str << x
str .concat x
ま、好きな方を使え。どうせ行き詰まるんだろうけどw
787:デフォルトの名無しさん
08/09/09 17:29:07
>>750
書籍 「Rubyレシピブック」 お勧め。
788:デフォルトの名無しさん
08/09/09 17:55:56
APIは熟読するぐらいに読まないと。
789:デフォルトの名無しさん
08/09/09 19:14:23
コード書いてるそばから一発でriやrefe2xでドキュメントを閲覧したり
ソースコード上の定義やCによる実装に飛べるようなエディタの支援が無いとキツイな
790:730
08/09/09 20:43:52
質問です
ある変数が取り得る値の範囲をあらかじめ定めることは可能でしょうか?
たとえば、代入時に0〜10までの値以外の値が代入されそうになったとき、
例外を発生させるようなメカニズムなど。
791:デフォルトの名無しさん
08/09/09 20:49:40
まずは初心者向けサイトで勉強したらどうよ?
792:デフォルトの名無しさん
08/09/09 20:56:53
>>790
ある変数て…
Ruby の変数には型がないって、このスレの今日の部分にも書いてあるよね
とりあえず、入門書を読んでみなよ
793:730
08/09/09 21:04:08
>>792
それは理解しましたが、
私が聞きたいのは型に関することではなく(実質は型のようなものでしょうが)、
ヒューマンエラーで誤って100などの数字を代入しないよう、
安全な代入操作を行いたいだけなんです。
ヒューマンエラーで誤って100などの数字を代入しないために。
794:デフォルトの名無しさん
08/09/09 21:06:56
>>793
if文って知ってる?
795:デフォルトの名無しさん
08/09/09 21:08:48
レヴェルの低いのがからんどるな
796:デフォルトの名無しさん
08/09/09 21:10:03
たぶんチンコがはえてないんだろw
797:730
08/09/09 21:10:37
>>794
代入文を書く直前にif文を書かずに済む方法はありますか?
798:デフォルトの名無しさん
08/09/09 21:11:01
>>790
オブジェクトという言葉を一度も使ってないことが気にかかる
Rubyはすべてのものがオブジェクトだ
変数と呼ばれるものは、該当するクラスをnew(とか)して作ったオブジェクト(インスタンス)に名前を付けたものに過ぎない
変数という入れ物は存在しない
オブジェクトというものについて勉強することを勧めるよ
これを大まかにでも理解しないままRubyの勉強を進めるとか遠回り過ぎて気が遠くなる
で、回答は
「オブジェクトに登録するときのメソッドをフックする、または専用の登録用メソッドを作成する」
というのが一般的だと思われる
799:デフォルトの名無しさん
08/09/09 21:11:35
はよ初心者サイト行け
800:デフォルトの名無しさん
08/09/09 21:11:58
>>790
class C
def foo=(v)
raise if v < 0 || v > 10
@foo = v
end
def foo
@foo
end
end
o = C.new
o.foo = 11
801:デフォルトの名無しさん
08/09/09 21:12:43
>>794
if文知ってるとチンコはえてきますか?
802:730
08/09/09 21:12:55
>>798
ありがとうございます。
803:デフォルトの名無しさん
08/09/09 21:13:17
>>790
ローカル変数やインスタンス変数に入る値(=代入されるオブジェクトの内容)を、自動的に制限する方法は
基本的には存在しない。テストで頑張るのが常道
ただし、アクセサメソッドを上書きすることで
obj.parameter = 100
といった代入の形に限り、何らかの制限を行うことはできる
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5392日前に更新/211 KB
担当:undef