1 名前:デフォルトの名無しさん [2010/03/04(木) 11:00:57 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 ★注意★ Ruby 1.9.1 は初心者にはまだ時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。 (理由:現時点では有名ライブラリやアプリが 1.9.1 に完全には対応していないためです) 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 を習得すれば将来スムーズに 1.9 系に移行できるでしょう。 関連スレやURLは>>2-5 あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
116 名前:111 mailto:sage [2010/03/08(月) 14:43:33 ] 調べてみたところ、LL系とコンパイラ系の両方1つづつ 覚えていると良いらしいので簡単だと言われている RUBYをやってみようと思ったのですが 実際どういう感じで使われているのかがよくわからなくて 質問させていただきました WEBアプリを作ることはまずないんですが >>115 さんのようなことができるならちょっと興味があります
117 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 14:50:22 ] >>116 やめとけ 君の考えているようなものではない
118 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:00:05 ] >>114 例外について。 あまり例外の階層構成については細かく考えられていない。 現在TypeErrorを返している一部はArgumentErrorを返すべき(逆だった かも)といった指摘も現在進行形で存在する。数学のほうの例外 体系もErrnoとは分けて作るような動きがあったかな。
119 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:05:13 ] >>117 使ってるの普通にWindowsだろうしな コマンドプロンプトの使用の概念から慣れていかないと RubyがLinuxやらCGIやらと親和性が強くて便利だと言われる理由は 「普段使ってるもの」をRubyスクリプトで直接パワーアップさせることができるから 普段からコンソール使ってコマンドラインプログラムを利用してるLinuxやCGIなんかの場合は Rubyで作ることができるものがそれそのものと同種のものだから、即取り入れることができる それこそ、覚えた日から即生活が豊かになる しかしWindowsは違う ごく一般的にはウィンドウアプリケーションじゃないとどうにもならん そして、それは「Rubyを使うべき分野」ではない(苦行の趣味に近い)
120 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:09:45 ] Windowsでプログラミングしたことない、、一度も。
121 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:51:30 ] 俺もWindowsはないな。MS-DOSはTurbo PascalとSmalltalk/VとModula-2ぐらいだな。
122 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:12:21 ] >>116 Rubyがそれほど簡単だとは思わないけど。
123 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:35:37 ] 簡単かどうかで言えばかなり簡単な部類 ただし、プログラミング初心者には難しい リアル師匠にあたる人がいればなんてことないが、これはどの言語でも同じか Perlは基本がわからないわけではないんだがなんともいえず挫折した、とかいような素養で充分なんだが それに該当するものをRuby単体独学で身につけるのは意外と辛いしRubyの役目かどうかもちと怪しい
124 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:40:59 ] 中学生に EPSON BASIC(中古・マニュアルのみ) → 大学で Perl4 → KENT CGI(笑) → うーんなんか違う という経緯をたどった俺には Ruby はどんぴしゃべったりで一生もの 「ちょっと遅いけどでも許す」ということを本当に口に出して言ったことをよく覚えている Ruby1.4 くらいだったかなあ
125 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:43:45 ] どんな顔か想像ついたw
126 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:44:39 ] ブラック会社みたいな物言いだな> 他の言語で基礎素養を身につけた方歓迎
127 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:48:07 ] >>126 めっちゃ平たく言うと完全初心者を歓待するためのドキュメント準備がない こんなとこでもいまだに適切な分野の人員不足が足引っ張ってる状態 書籍ならなんとかなりそうな気もするんだが、オンラインでもある程度あったほうがいいよね PerlとかPythonとかはnewbieを扱うための準備をかなり前からしてる Rubyはどっちかってと「わかってる人向け」で突っ走ってきたので
128 名前:111 mailto:sage [2010/03/08(月) 16:51:19 ] インストールで挫折した ネットも繋がないといけない?ようで気味悪いので削除しました 皆様ありがとうございました
129 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:53:59 ] よーしrubyのためにwindows消して ubuntuいれちゃうぞー
130 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:57:52 ] パパやめて!Windows消すぐらいならVMwareかVirtualBox使って!
131 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:01:47 ] もともと持ってないならまだしもわざわざ自分から捨てるような権利でもないな というかそのへんは本スレでやれ
132 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 18:34:28 ] Ruby が簡単かどうかは >>119 さんもが書いているいるように それまでの慣れや経験に依るだろうね Unix, Linuxを使って来てシェルスクリプト,sed, awk 等 使ってきた人間だと簡単に感じる 本一冊(hunt/thomas)通勤中読んでいたらすぐに簡単なものは書けるようになった 確かにターミナル使ったことない人にはわかりにくいだろう
133 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 19:09:23 ] つまり新しい言語に対応できない無能なおっさんが いきついた場所がRubyということですね
134 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 19:14:54 ] >>133 真面目にそんなこと言っているのだとしたら、そうとう恥ずかしいぞ。
135 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:32:51 ] 真面目じゃなくても恥ずかしいわw
136 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:36:12 ] 今時、小学生でもLinuxでサーバ構築できるというのに...
137 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 22:47:11 ] ここほど口だけ出来る奴が居座ってる初心者スレは無いよな。
138 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:07:40 ] そんなことを言っても出せないものは出してあげられませんよ
139 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:12:27 ] 逆に貧相なCMD.exeでもRubyで花を咲かせることができる windowsユーザーだってRuby使ってるぜ
140 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:49:53 ] でも根本的に向いてない。 教祖自らウィンドウズ使ってないしねえ。 教祖と同じデビアンから入信してみるのがいいんじゃ? まあシェルでまずは挫折して逃げ出すと思うが。 pc11.2ch.net/test/read.cgi/linux/1267107714/ Debian GNU/Linux スレッド Ver. 63 pc11.2ch.net/test/read.cgi/linux/1154631461/ Debian原理主義者テラモエス
141 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:03:36 ] 逆に、WindowsでRubyをバリバリに使ってる人ってガチガチに独自の快適コンソール環境を構築してそうだよなあ。
142 名前:デフォルトの名無しさん [2010/03/09(火) 00:42:22 ] ある課題があって、それをRubyで解決したいのですが御知恵を。。。 課題というのは、仕事でつかってるIBM系のメインフレームのデータセット? という1レコード3Kbyte程度のバイナリファイルをFTPでおとしてきて 読み込み加工して出力し、またメインフレーム上に戻す(できれば)という ものです。 そのバイナリファイルとは別に、項目名と、その項目の値は何バイト目から 何バイトがPACだ、小数点以下は何桁だ、CHARだというレイアウトファイル なるものがあります。文字コードはEBCDICというものらしいです。 このままじゃデータをエクセルに落して、手作業でやらされる羽目になります。。。 どう料理していけば良いでしょう?
143 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:44:40 ] どう加工するかによるだろそりゃ。 バイナリファイルの扱い自体は別に困難じゃない。 unpackして適当に加工してまたpackすりゃいい。 問題はEBCDICの扱いになるかな。なんかライブラリあったかなあ?
144 名前:デフォルトの名無しさん [2010/03/09(火) 00:52:39 ] さっそくありがとうございます。 pack,unpackの扱いについては、このあたりで良いですか? ttp://www.ruby-lang.org/ja/man/html/pack_A5C6A5F3A5D7A5ECA1BCA5C8CAB8BBFACEF3.html
145 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:56:11 ] バイナリ列をバイナリのまま扱った経験がないとしたら茨の道と言わざるを得ないが Rubyはそのへんを助けるようなことはしない
146 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:04:49 ] COBOLとRubyって、すごい対比だなw 金融機関の人間だけど、そういう場合は必ずいったんRDBに入れたり最悪でもCSVかTSVに変換してるなぁ。 つまり汎用機→情報系用に変換→各種処理→戻し変換→汎用機というルート。 変換にはうちはF*TRANを使ってる。 iconvとかでもEBCDIC扱えるみたいね。 データセットを直接扱うなんて、 リスクが高すぎてうちでは絶対に許してくれない。
147 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:17:23 ] 質問に?が多すぎ。 バイナリ、とは言うが、実はASCIIの文字列かいな。 .txt の処理は、Rubyだとより柔軟にできる訳だが、今からでは、間に合わないでしょ。 SEDとか、AWKのスクリプトも書けないのか、それともそんなものも知らないのか。 おそらく、今から勉強しても間に合わないから、あなたの得意なエクセルで作業をスタート。 あとは、時間との勝負。 だな。
148 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:19:28 ] F*TRANって、FORTRAN? なんで伏字にするの?
149 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:24:45 ] FORTRANに嫉妬しているから。
150 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:33:02 ] >>148 www.bsc.fujitsu.com/services/ftran/
151 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:34:01 ] c#なら10行書けば済む処理だな
152 名前:149 mailto:sage [2010/03/09(火) 01:41:46 ] それは、知らんかった。 音(的には)P-TOSのなんとかに似ているね。
153 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:42:02 ] >>150 こんなのあるのか。笑ってしまった。
154 名前:デフォルトの名無しさん [2010/03/09(火) 02:31:05 ] >>145 まさにその茨の道を進もうとしてるようですよ。 >>147 正直よくわかんね!ってところだからですよ、ええ('A`) 学生の頃も本職になった今もC++で離散系のシミュレーションとかやりつつ時期によっては しょぼいエクセルの業務システム作りをやってますよ。(VBA嫌いなので得意じゃない) sed,awkはそんなものがあるのは知ってたけど,perlでやってました。 バイナリとはいいつつ、ファイルレイアウトを見ると間違いなくパック10進数といった類 の補足説明があるので文字だけってことはないようですね。 とまあそんな自己紹介はいいから、とりあえず明日明後日ともうちょっと下調べして出直 してくる。納期もあってないようなもんなのでまったりやりますよ。 >>146 手掛かりくれてありがとう。
155 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:01:13 ] >>114 freeze は(少なくとも組み込みや添付では)破壊的動作のメソッドの動作を禁止させるフラグ立て def hoge! raise "can't modify frozen Hoge" if self.frozen? ... end というメソッド定義に「自分でする」 破壊的動作や内部構造への再代入をされるとどっかに @foo||= なんかで残ってるインスタンス変数とかが 変更前のまま残ってて場合によっては食い違い動作の原因になりそうだとか そういうおそれがあるクラスに提供する ぶっちゃけこれ使わずに「お前が困る動作組み合わせは全部書いてあるからちゃんとマニュアル読め」でもいい マニュアル読まない人が(あるいはうっかりで)よくないタイミングで破壊的動作をしてしまっても 変更して欲しくないとタグ付けされたオブジェクトだったらメソッド動作の時点でエラー出して守ってあげよう、 そんな若さと渋さの間で揺れるナイス・サーティのアナタに贈る鼻歌みたいな応援歌
156 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:32:47 ] a = [ [ ] ] a.freeze a.frozen? #=> true a[0].frozen? #=> false なんだよな。 当然といえば当然なんだが。
157 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:36:24 ] >>156 それは a つまり Array の freeze メソッドの動作に依存する 配列中の全要素に freeze を適用するという動作にしても構わない(不便だとは思うが) Array#freeze がそういう「外の入れ物だけフリーズさせる」ような動作にたまたまなってるだけ freeze の実装自体はもっと柔軟に対処が可能
158 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:50:48 ] freeze は def hoge! raise_if_frozen … end とか def hoge! … end freeze_method :hoge! とかいう仕組みを作って簡易に利用できるほうがよかったと思う
159 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:58:03 ] freeze 自体が Ruby 文化とあまり適合しないと言われているから うまい構文糖や実装ポリシーが 熱心に研究されていないんじゃないかなあ
160 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:11:39 ] evil rubyたのしいです。
161 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:11:51 ] private や protected の動作がイマイチなのと根っこはたぶん一緒だよね
162 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:44:44 ] if hoge && fuga.size > 0 と if hoge && !fuga.empty? どっちがいい? どっちでもない別の表現がいい?
163 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:46:31 ] あと if fuga.size > 0 は unless fuga.empty? にした方がいいんだろうか? どれもお好きなようにっていう程度だろうか
164 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 14:07:25 ] >>162-163 字面が違うから意味が違う が、fuga が配列みたいなもんなら、俺は empty? の活用をまず考える empty? を使うことで否定要素が複数混じってしまうようならすっぱり諦めて size の比較とかにする そんな感じ あと配列なら Enumerable 由来の any? とか all? とかの利用も考えるといい
165 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:21:52 ] >>164 書き忘れてましたfugaはArrayインスタンスです 配列であれば162も163もそれぞれ動作は同じですよね?
166 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:51:22 ] なにを心配してるのかわからん sizeが整数や実数を返す可能性とか考えてる?
167 名前:162 mailto:sage [2010/03/09(火) 17:42:10 ] 心配しているわけじゃなく 意味が同じなら書き方としてどっちがRubyっぽいのかなと思って >>162 ,163で例に出した形の文は今まで前者で書いてたんですけど empty?を使う方がいいという意見を別のところでも見たので。 特に>>162 の方は否定(!)をつけてまでempty?にするのがいいのかどうかってことです
168 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:49:23 ] ? を使う述語があるならそっちのほうがいいという話にはどうしてもなるな !foo.empty? みたいなのにはうんざりしてるのか、 ユーザーの作るライブラリでは相反する述語がセットで定義されてることも多い && などで繋ぐ場合は !foo.empty? みたいな記述はけっこう容認されてる雰囲気 if !foo.empty? だけだったら unless foo.empty? 使えという話になるんだけど
169 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:26:00 ] >>162 fuga.size > 0 より断然 fuga.empty? をお勧めします。 理由は、fuga.empty? はまさに「空かどうか」を調べるメソッドであり、やりたいことを明確に示しているからです。 これに対し、fuga.size > 0 は「サイズが0より大きいか」を表しており、「空かどうか」を直接表しているわけではありません。 つまり、fuga.size > 0 より fuga.empty? のほうがより抽象度の高い記述になっています。 なお Ruby では .empty? のほうが若干ですが動作速度が速いはずです。
170 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:01:57 ] 「要素があるか」を調べたいのに「空か」を調べてさらに加えて否定まで付けなきゃならんのは如何なものかってことじゃろ
171 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:35:09 ] だから標準で all? とか any? とかあるって それで不足ならメソッドに掃き出すことを厭ってはならね
172 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:41:12 ] unlessがあるんだから使おう、と思うか、他の言語と同じようにifで書こう、と思うか、は 微妙なところだな。自分の場合、何年かの周期でふらふらしてる。
173 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:42:39 ] メソッドフル活用派とプリミティブ派のたたかいはまだつづく
174 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:44:37 ] Pythonスレ 社会人が多く、大人の発言 初心者に優しい Rubyスレ キチガイ、偏執狂、厨房の巣窟
175 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:49:56 ] 要素の数が0以外なら真を返す、みたいなメソッドがないことが問題をややこしくしてる 本当はこのへんは対称性があってもいい(なくてもいいが) うまいメソッド名が思いつかなかったっぽい雰囲気はあるが
176 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:56:30 ] >>170 (誤) さらに加えて (正) かてて加えて
177 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 20:05:28 ] any? はよいんだけど、 [ nil ].any? #=> false なので 要素が1つでもあるか、という判定としては万能ではないかもなー。
178 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 20:11:51 ] 万能ではないも何も > 要素の数が0以外なら真を返す、みたいなメソッドがない という話が既に
179 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 20:18:35 ] def hage? … end def fusa? !hage end みたいなメソッド定義はよく見る empty? も時流に乗るべきだとは思う
180 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:24:10 ] 富士通御謹製エフトランを知らん奴が意外と多いんだな 汎用機、オフコンを知らん世代が増えて来たったことだな z/OSで仕事してたころはデータセットをFTPのBINでダウンロードして shift-JISに変換とかよくやってたぜ
181 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:33:53 ] 懐古厨乙
182 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:37:02 ] >>181 レスしたのお前だけだぞ
183 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:41:39 ] おっさん多いなこのスレ。。
184 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:51:59 ] うんにゃ、知らない奴はレスしないだけ バックグラウンドがたまたま見えただけに過ぎない
185 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 04:22:42 ] メソッドと変数が見分けがにくいな
186 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 09:11:00 ] ローカル変数のように見えて実はメソッド、というのはままある。
187 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 09:19:08 ] 「値は必ず確固としたオブジェクト」なので、メソッドだろうがローカル変数だろうが 値を返すキーワードが実際は何でできてるのかは使用者からは区別する必要ないよねというポリシーがある mes(foo) としたとき、foo が変数なのかメソッドなのかは実際どうでもいい foo という名前が解決されてその結果返されるオブジェクトだけが重要 代入が文脈依存なのはそれなりに面倒 selfの有無で同じ名前を2回使い分けられるということでもあるが
188 名前:デフォルトの名無しさん [2010/03/10(水) 09:26:35 ] さすがにそれはどうでもよくないだろー local_var()もできないんだし
189 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 10:01:42 ] 問題になる状況自体が問題だと思うぞ どういうネーミングだよ
190 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 10:10:12 ] めっちゃプリミティブな名前のインスタンスメソッドを作って、なおかつローカル変数もそのままの名前である場合 uri とか
191 名前:デフォルトの名無しさん [2010/03/10(水) 10:34:48 ] 下記コピペの拡散、お願いします! -- ここから -- 欠陥だらけの悪法、民主党が準備を進めている「子ども手当」がまもなく国会を通過する見込みです。 そこで、この法案に対するクレームを直接政府に届けて、少しでも本法案を阻止できるよう動きませんか!? クレーム先:www.cao.go.jp/sasshin/hatomimi/re_hato/uketsuke.html ハトミミ「国民の声」 受付窓口 の「■ 一般受付窓口 【おかしなルール(規制・制度)】」に、「基準や要件の見直し」として、本件に関する 抗議をお願いします。実名とメールアドレスが必要となります。○制度の所管省庁 は、厚生労働省です。 なぜ本法案がまずいのか?子ども手当支給対象者、民主党支持者もじっくり考えてみてください。 【子供手当て驚愕の真実】 www.youtube.com/watch?v=Y4wuKv8ExeM&feature=related 驚愕の子供手当て 5959goc.iza.ne.jp/blog/entry/1475880/ 2010/3/10付の中日新聞 up3.viploader.net/pic/src/viploader1186653.jpg viploader.net/pic/src/viploader1186654.jpg 要件をまとめると、 「外国籍の人間も支給対象」「海外在住の日本人は支給対象外」「養子も支給対象」「財源が赤字国債」 「子どもが外国にいても支給対象」「子どもの存在証明として、法的な力を持つ手段がない」 となります。これにより、以下のことが考えられます。 1. この手当目的に、日本より経済状態が低い外国において不当な養子縁組を作るケースが激増する。 2. この手当目的に、日本にやってくる外国人(特に中国人)が激増する。 3. なによりも、負担は将来の子ども達が背負わなければならない。 国会答弁にて、政府も設計に難があるのは認めていますが、今後検討するという理由で、この欠陥を そのまま推し進めようとしています。まだ諦めるのは早いです。できる限りの手を尽くしましょう!! -- ここまで --
192 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 10:57:01 ] スレ違い
193 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 10:58:59 ] >>192 レスしたのお前だけだぞ
194 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 13:02:57 ] >>191 民主は売国政党だからな
195 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:09:34 ] 初心者は1.8.7をインストールすればいいんでしょうか?
196 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:36:37 ] はい、そうです。
197 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:37:07 ] はい Windowsならarton.hp.infoseek.co.jp/indexj.html ただしコマンドプロンプトの知識がどうしても必要
198 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:11:43 ] def method1(x) return true if (0...1000).include?(x) return true if (2000...3000).include?(x) return true if (4000...5000).include?(x) return false end --- def initialize @arr = [] for i in 0...1000 @arr.push(i) end for i in 2000...3000 @arr.push(i) end for i in 4000...5000 @arr.push(i) end def method2(x) return @arr.include?(x) end 上のmethod1とmethod2をそれぞれ呼び出したとき、 結果は変わらないと思うんですが、処理速度に違いは出ますか?
199 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:49:57 ] def method3(i) case i when 0...1000, 2000...3000, 4000...5000 then true else false end end ほんとうに整数ならこれが速くてわかりやすい 整数なのならわざわざ配列作る必要はない
200 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:22:30 ] int x=1000; for(int i=0;i<=x;x*i) { }
201 名前:デフォルトの名無しさん [2010/03/10(水) 19:40:05 ] (0...1000).include?(x) は 0<=x && x<1000 と同じだけど (0...1000).to_a.include?(x) は配列の要素を一つずつ比較するので当然遅くなる
202 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:48:12 ] 処理が遅いってどういうとき遅いの?
203 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:05:01 ] >>202 実際に遅いかどうかプログラム作って確かめてから考えたほうがいい 机上で遅そうだと思っても意外と許容範囲内であることは多い
204 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:09:02 ] .NETで作ったdllは参照できますか?
205 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:16:00 ] dll <-> COM <-> Ruby
206 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:18:58 ] へー、COMなら参照できるのか どういう原理なんだ?
207 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:38:42 ] COM Ruby でぐぐると…わあ微妙
208 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:27:35 ] pause(2) に相当するメソッドでないんですかね。 とりあえずKernel.#sleepによる無限スリープで代用していますが > sleep(sec = 0) -> Integer > sec が省略されたり 0 を指定した場合、他スレッドからの Thread#run > などで明示的に起こさない限り永久にスリープします。 sleep(0) してもすぐ戻ってきやがる。 マニュアルと実際の挙動が違うのはなぜ? ちなみに引数を省略した場合は仕様通りなんですけど。
209 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:33:11 ] pause(2)ってサスペンドの時に発行される奴だっけ? Process.kill :STOP, $$ じゃだめですかね?
210 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:34:53 ] >>209 ああ、それいいかもです。 ところでKernel.#sleepの挙動がマニュアルと異なるのが気になりますw sleep(0) ですぐリターンするのは何故でしょう??
211 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:38:10 ] まあ個人的にはただしい挙動だとは思いますが。 シェルから sleep 3 を実行すると0秒後に復帰しますし、永久にスリープはしませんね。はい。
212 名前:198 mailto:sage [2010/03/11(木) 00:38:23 ] みなさん、ありがとうございます。 method1の代わりには、ご提示くださったmethod3が確かに良さそうですね 0...1000等はデータ的な数値(整数)で、頻繁に比較するのですが、 データ専用のクラスに数値の配列とmethod2を定義して呼び出し側のクラスから参照して比較したほうが、 呼び出し側のクラス内に直接method1を書くよりも記述のまとまりとしては良いと思ったんです かと言って、データのクラスにmethod1や3のような記述をしても、 データを管理しているイメージはないですよね
213 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 00:58:39 ] www.ruby-lang.org/ja/man/html/_C1C8A4DFB9FEA4DFB4D8BFF4.html ここには0の場合永久スリープとは書いてないな。 RubySpecには it "pauses execution indefinitely if not given a duration" (引数がないなら無限に止まる) はあるけど0を指定した場合の仕様は書いてない。 github.com/rubyspec/rubyspec/blob/master/core/kernel/sleep_spec.rb でもって、るりま doc.okkez.net/static/187/class/Kernel.html には0だと永久スリープとある。 るりまの間違いだろうか。
214 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 01:02:12 ] >>212 え、なにそれ class HogeDataRange def include?(x) case x when 0..1000, 2000...3000 then true else false end end end puts "13は含まれてるよー" if HogeDataRange.new.include?(13) とかやる気なの?
215 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 01:24:00 ] Rubyでできないことって何?
216 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 01:26:47 ] >>215 あなたができそうだと思っているようなことは全てうまく行えない と答えるのが一番実態に近いと思うん 説明してだいたいをわかってもらえるような人はそういう聞き方しないので