1 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 08:39:14 ] プログラミング言語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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
384 名前:デフォルトの名無しさん [2010/02/10(水) 22:26:55 ] >>381 gem install oniguruma 組み込みになるわけではないので制約はあるが。 oniguruma.rubyforge.org/use.xhtml
385 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:22:59 ] oniguruma を使うようなひとなら mingw とか入れてるような 気がします・・・知らずに joni 使ってるひとも嫌少ないだろう・・・
386 名前:デフォルトの名無しさん [2010/02/10(水) 23:49:30 ] >>381 ってjrubyの話なん?
387 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 03:58:52 ] >>384 Requirements * Oniguruma regular expression library (>= 4.x.x) ってことは 自分でOnigurumaをコンパイルするか バイナリをどこからともなく拾ってくる必要があるってことか ./configure make make install で済む話ではあるが
388 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:37:00 ] irb> p "ねこだいすき" "\343\201\255\343\201\223\343\201\240\343\201\204\343\201\231\343\201\215" irb> $KCODE="u" irb> p "ねこだいすき" "ねこだいす\343\201\215" なんだこれ
389 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:22:03 ] 下のようなループってrubyだとどう書きますか? for (i = rect->lx, j = rect->ly; i <= rect->hx; i++) map[i][j] = TRUE;
390 名前:デフォルトの名無しさん [2010/02/11(木) 23:24:17 ] 最近出るようになった気がする。 $ cat test.rb # coding: utf-8 p 'ねこだいすき' $ rvm 1.8.7-p72,1.8.7-p160,1.8.7-p174,1.8.7-p249,mput ruby -Ku test.rb ruby-1.8.7-p72: ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin10.2.0] "ねこだいすき" ruby-1.8.7-p160: ruby 1.8.7 (2009-04-08 patchlevel 160) [i686-darwin10.2.0] "ねこだいすき" ruby-1.8.7-p174: ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.2.0] "ねこだいすき" ruby-1.8.7-p249: ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin10.2.0] "ねこだいす¥343¥201¥215" mput-head: ruby 1.9.2dev (2010-02-10 trunk 26632) [x86_64-darwin10.2.0] "ねこだいすき"
391 名前:デフォルトの名無しさん [2010/02/11(木) 23:26:15 ] >>389 jは変化してないけどいいの? iだけならuptoでよいでしょう。
392 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:41:26 ] >>391 ありがとうございます! これをrubyに書き換えて勉強中でした。 ttp://racanhack.sourceforge.jp/rhdoc/coderect.html
393 名前:デフォルトの名無しさん [2010/02/11(木) 23:52:42 ] >>388 redmine.ruby-lang.org/repositories/revision/ruby-18?rev=26103 usa, 2009年12月15日 11:50 AM string.c (rb_str_inspect): wrong result of UTF-8 inspect because of the mistake of calculation. reported by eban via IRC. これかな。 あれ、1.8.7-p248 がクリスマスリリースだったはずだが…
394 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:56:35 ] Iconv::IllegalSequenceを見るのはもう飽きたお…
395 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 03:35:08 ] 何か一揆にperl5の時代に戻った気がするなw 教祖様が日本語処理ぐらい最初からまともに組み込んでてくれれば。
396 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 06:07:00 ] iconvとnkfってどう違うの? どう使い分けたらいいの?
397 名前:デフォルトの名無しさん [2010/02/12(金) 08:13:29 ] nkfは - shift_jis, euc-jp, iso-2022-jp, utf-8しか使えない。 - 改行コードの変換ができる。 - カタカナやアルファベットの全角半角変換ができる。 - base64のデコード/エンコードができる。 iconv - いろんなコードが変換できる。
398 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:28:43 ] >>372 ttp://www.artonx.org/diary/20100211.html#c01
399 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:33:31 ] 文字コード変換ならiconvが上で その他機能がnkfにはあると そういうこと?
400 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:51:30 ] そもそも文字コード変換に上とか下とかあるんかいな 1.9のencodeとNKF/iconv/kconv/uconvの違いも教えてほしい
401 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:14:29 ] 動作が違うとかは置いとくと 対応してる文字コードが多いほうが上っていうことでしょ String#encodeはよくわからんが ttp://jp.rubyist.net/magazine/?0009-BundledLibraries
402 名前:デフォルトの名無しさん [2010/02/12(金) 09:17:58 ] encodeは文字列のバイト表現を指定のものに変換したStringを作り、エンコード情報を設定。 encode!は自分自身の持つバイト列とエンコード情報を変える。 force_encodingは自分自身のエンコード情報のみ変える。バイト列はそのままで解釈が変わる。 kconvはnkfをラッピングして文字コード変換のみ、簡単にできるようにしたもの。 uconvはたしか標準じゃないよな? euc-jp, cp932(shift_jisの亜種), utf16, ucs-4に対応している。 rubyでutf-8が扱えるようになったのはuconv作者の提案したコードがもとになってる。 ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/4186
403 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:28:13 ] >>400 NKFはguessができるので、現在のエンコーディングが何かわからなくても変換ができる ただ、日本語関連(とMIME)しか認識できないしLatin-1とかの指定もできない iconvはguessができないので、現在のエンコーディングを正確に(本当に正確に)指定しないと変換できない そのかわり、NKFではできなかったような文字エンコーディングの値の保持解釈ができる SHIFT_JISとCP932やEUC-JPとEUC-JP-MSを使い分けられる(可能性がある)のはiconvだけ ただし、相手のマシンにインストールされている外部iconvのバージョンと対応に依存するのでやや面倒 iconv実装にはでっかい版と小さい版があり、外人産は小さい版だけを使うことが多いのでファッキンガッデム 1.9のEncodingはiconvを使ってる kconvはNKFを使ってる uconvはめんどくさいからもう使うな、使わなくても用は済むはず
404 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:36:07 ] >>401 そのリンクは読んだけど総花的であんまり参考にならなかった ・M17N(1.9)/NKF/iconv/kconv/uconvで変換結果に差が出ることがあるか ・速度の違い ・推測の精度 ・使い分けのシチュエーション がよくわからんのですよ
405 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:38:35 ] >>403 わかりやすい
406 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:44:20 ] ってことは,事実上 iconv と NKF の二種類しか変換器は存在しないわけね でメールみたいに入力のエンコーディングがよく解らん場合はNKF.guessをつかえと 入力のエンコーディングが固定されてる場合はiconvでおkでOK? 1.9のM17Nはguessしてくれてるんだと思ってたわ。
407 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:47:44 ] > メールみたいに入力のエンコーディングが のあとに続くのが > よく解らん場合 なのがショックだ あれは99パーセントくらいの確率でヘッダに書いてあるまんまだと思うのだが最近は違うんか
408 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:49:41 ] メールやHTMLが文字化けするのはヘッダのエンコーディングと実際のエンコーディングが違うからなんじゃないの?
409 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:55:24 ] 日本人しか使わないプログラムなのならNKFでいいよ 外国の人も使うならiconv「でなければならない」 MechanizeとかではNKFを組み込んでしまった日本人がいて、その部分がえんえん障害になってる iso-8859-xはNKFのShiftJISに誤爆することがあるんだが、そのへんの処理を考慮してない
410 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:59:50 ] >>407 メールの現実を知らなさ過ぎる
411 名前:デフォルトの名無しさん [2010/02/12(金) 10:11:38 ] 1.9のencodeは青学の先生のライブラリ(transcode)じゃないの?
412 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 10:37:03 ] >>411 ttp://jp.rubyist.net/magazine/?0025-Ruby19_m17n#l76 ttp://naruse.biz/pub/20080621%20RubyKaigi%20RubyM17N.txt ttp://www.sw.it.aoyama.ac.jp/2008/pub/RubyKaigiM17N.html これか 1.9のM17Nはiconvじゃなくてtranscodeみたいだ また兄弟が増えちまった よくわからなくなってきた
413 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 11:04:08 ] 1.9のEncodingの中の人はIconvだと思ってたIconvの例外出すやんキュピーンやん と思ってたんだが出なかった あれー、昔はIconvが例外出してなかったっけ、気のせいか irb> "@".encode(::Encoding::SHIFT_JIS) Encoding::UndefinedConversionError: "\xE2\x91\xA0" from UTF-8 to Shift_JIS irb> "@".encode(::Encoding::CP932) "?@"
414 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 11:08:15 ] うちは大家族ですから^^; おとーちゃんビシッと言ってやりな って言うは簡単だけど結構面倒だよね…
415 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 11:54:27 ] うっぜぇ変なもん作るなよ rubyってiconvすら実装されてない糞言語だったのか
416 名前:デフォルトの名無しさん [2010/02/12(金) 11:58:46 ] 馬鹿発見。
417 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:15:08 ] みてみて! Ruby でクイックソート書いてみた。 def qsort(ary) return [] if ary.empty? v = ary.shift left, right = ary.partition{|e| e < v} qsort(left) + [v] + qsort(right) end ary.dup とかした方がいいのだろうか。 ま、いいや。
418 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:27:58 ] irb> Iconv.conv('shift_jis', 'utf-8', "\302\273") Iconv::IllegalSequence: "\302\273" irb> Iconv.conv('cp932', 'utf-8', "\302\273") Iconv::IllegalSequence: "\302\273" » (» 、RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (U+00BB)、終わりギュメ) を含むUTF-8文字列をIconvでShift_JISっぽい文字列にしたいんですが…
419 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:43:39 ] >>417 受け取ったArrayを中途半端に破壊してるのは……まあ確かにまずいかも アルゴリズム的な補足をするなら、単純かつ美しい実装ならそれでもいいけど、 実用上はピボットの取り方を工夫しないといけない
420 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:44:32 ] irb1.9> "\302\273".encode('SHIFT_JIS') Encoding::UndefinedConversionError: "\xC2\xBB" from UTF-8 to Shift_JIS そもそもだめぽい
421 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 12:58:36 ] Ruby M17N は transcode という独自実装 Iconvは環境依存な上にWindowsだとないから、Ruby M17N で使うことはできなかった なお、libiconvのCP932周りのサポートが腐ってるのも致命的だとされた > そのかわり、NKFではできなかったような文字エンコーディングの値の保持解釈ができる > SHIFT_JISとCP932やEUC-JPとEUC-JP-MSを使い分けられる(可能性がある)のはiconvだけ nkf もできるよ > メールやHTMLが文字化けするのはヘッダのエンコーディングと実際のエンコーディングが違うからなんじゃないの? そんな根本的に違う指定ってそんなにあったっけ?
422 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 13:00:01 ] >>418 変換表に定義されてないんで、変換前に別の文字にgsubするのが正解
423 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 13:13:10 ] >>418 422が書いているようにgsubするのもありだが 変換時の戻り値で分岐するというやり方もある 詳細は下記の "Encoding::Converter#primitive_convert" の項目参照 jp.rubyist.net/magazine/?0025-Ruby19_m17n#l76
424 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 13:26:50 ] >>421 実際にメーラーを書いて運用してみたらいい
425 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 14:06:43 ] kconvの "\302\273".tosjisでは"\x91\xB9"になるな エラー出して教えてくれたほうがマシかも
426 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 17:04:09 ] >>424 単にCP50221って話じゃないの、それだとguessは悪手なんだが
427 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:29:23 ] reg2 = Regexp.new("A(.*)CD(.*)EF") str1 = "AbbccCDasdaEF" str1 =~ reg2 これで得られる$1と$2をループかなにかで 添字をつけて取得できないものでしょうか?
428 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 18:55:24 ] >>427 Regexp.last_matchとか$~のこと?
429 名前:427 [2010/02/12(金) 19:21:56 ] >>428 $~がMatchDataってオブジェクトになってるのか ありがとう、解決しました。
430 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 19:39:54 ] >>427 foo = reg2.match str1 とすれば、foo にその MatchData が入る
431 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 19:54:03 ] kconvとかnkfの話はrubyと関係ねぇ…
432 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 20:14:00 ] kconvは関係あるな nkfは関係ないがNKFは関係あるな
433 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 21:08:09 ] Ruby1.9で勉強していた(>>1 を読んでませんでしたorz)のですが、 Railsもやってみたいということで、1.8をインストールしたいです。 ですが、Synaptic(Ubuntuのパッケージマネージャ)に1.8のフルインストールパッケージがありませんでした。 なので公式サイトにあるソースコードからインストールしようと思うのですが、 うまく1.9と共存できるのでしょうか? 宜しくお願いします。
434 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 21:26:32 ] 1.8と1.9ならおおむね問題はない ユーザーディレクトリにインストールしても動くぞ
435 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 21:32:17 ] ありがとうございます、今やったところ 1.9が/usr、1.8が/usr/local にたまたまなのか入ったので問題なさそうです。 とりあえずrubyとirbコマンドは1.8で起動するようにしました。
436 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 21:35:41 ] へえ、いつの間にか1.8なくなってたのか
437 名前:デフォルトの名無しさん [2010/02/12(金) 21:42:43 ] 参考までに、./configure するときに 1.8.7$ ./configure --prefix=$HOME --program-suffix=187 && make install 1.9.1$ ./configure --prefix=$HOME --program-suffix=19 && make install とすると $HOME/bin/ruby187 $HOME/bin/ruby19 などが出来る。 最近はコマンド一発でruby環境を切り替えられる rvm という便利なツールもある。 (多少不安定だが)
438 名前:デフォルトの名無しさん [2010/02/12(金) 22:14:07 ] このようなデータがある時に、重複したデータ削除したいです。 irb(main):001:0> address = Array.new => [] irb(main):006:0> p address [{"name"=>"taro", "tel"=>"11111111111"}, {"name"=>"hanako", "tel"=>"22222222222"}, {"name"=>"hanako", "tel"=>"33333333333"}, {"name"=>"taro", "tel"=>"11111111111"}] 重複している {"name"=>"taro", "tel"=>"11111111111"} を削除したいです。 調べてみて uniq 使えば良いかなと思ったのですが、違うようです。 わかる方、アドバイス貰えると助かります。
439 名前:デフォルトの名無しさん [2010/02/12(金) 22:21:44 ] uniqでいいように見えるんだけど。
440 名前:デフォルトの名無しさん [2010/02/12(金) 22:31:06 ] >>439 失礼しました。uniq で良かったようです。
441 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 23:15:20 ] rsenseってなんですか?
442 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 00:11:16 ] Rubyコードを補完してくれるもの ruby rsenseでググるといろいろ情報が見つかるよ
443 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 00:27:21 ] >>442 ありがとうございます.メッセで飛んできて「使ってみたらおもしろいかも」って言われて気になってました. github.com/m2ym/rsense これですね.でもどうやって使えばいいんですか?
444 名前:デフォルトの名無しさん [2010/02/13(土) 00:47:08 ] こいつ自体はファイルとその中での位置を与えると補完候補を返すというコマンドに すぎないので、好みのエディタのマクロでそれを呼び出して候補を表示する部分は 自作する必要があると思う。
445 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 03:44:36 ] >>444 ありがとうございます.Emacs使ってるんで色々みてみます.といってもなんかドキュメント少ないみたいですが;
446 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:23:42 ] $gem install newgem したら ERROR: Error installing newgem: rubigen requires thoughtbot-shoulda (>= 2.10.2, runtime) とか出てきて さらにthoughbot-shouldaを探しても見つからないんですが newgemのインストールの仕方を教えてください $ gem --version 1.3.5 $ ruby --version ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-mswin32]
447 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:34:58 ] gem install thoughtbot-shoulda --source=gems.github.com
448 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:36:14 ] 「or を伴う式をメソッドの引数に渡す場合は二重に括弧が必要となります。 」 ってどういう意味?
449 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:43:24 ] そういうことはしないでくださいね、の意
450 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:43:36 ] puts(nil or "a") だめー puts((nil or "a")) おk
451 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:51:56 ] >puts (nil or "a") a 普通にいけたけど?
452 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:55:07 ] それ括弧なし
453 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 09:57:32 ] >>448 それ余計な文言だよな 査読者や編集者がやっぱり必要だと思う 「メソッドの引数にする場合にはorを伴う演算部分を括弧でくくって式にする必要があります」が正解 p(false or "yes!") だと「p (false が偽だったら "yes!"」と解釈されて文法エラーになる false or "yes!" がひとつの処理の塊だとわからせるために式として括弧で括り、 (false or "yes!") なおかつ、これ全体を引数として指定してるんだということをわからせるために引数としての括弧を省略せずに使う p() にさっきのカッコつき式を適用して p((false or "yes!")) となる なお、>>451 のように引数括弧相当の存在が明確な場合はエラーにならない この括弧は引数の括弧ではなく式を作る括弧だ
454 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 10:13:03 ] ありがとうございます。 もしかしてメソッド名と引数を括る括弧の間を空白で空けてはいけない? (第一引数の式を括る括弧と解釈される?)
455 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 10:26:20 ] メソッドの引数のカッコはメソッド名と分かれてはいけない が、分かれた場合は「引数のカッコを省略して引数の全体(または一部)をカッコで括った」と解釈される おおむね同じ動作をするので、実際上はみんな深く考えてない puts("ruby") #=> "ruby" をメソッドに渡す puts ("ruby") #=> ("ruby") の結果をメソッドに渡す
456 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 10:36:24 ] ありがとうございました。 ロジカルシンキングではなくイマジネーションでってことですね
457 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 10:51:47 ] いや物凄い論理的だと思うが 引数括弧を省略するのがコンセンサスになってるのはpとかputsとかごく一部だぞ それ以外の普通のメソッドはとりあえず括弧つけとく派が多数派だ irbとかだと読み返すこともないから適当に省略しまくってるが
458 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 10:55:08 ] >>456 意味不明なときは感覚なものととらえてしまうけど、 しばらくRuby使ってなれてきたらロジカルなものだと理解できるようになるよ、がんがれ
459 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 11:34:23 ] ちょっと使ってみたんだけど、この言語(というか処理系?)、は多項式時間や指数関時間な計算をブチ転がそうとすると圧倒的に遅いわね… なによ…まったく!
460 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 12:45:56 ] そこらへんのしっかりしたドキュメントが無いから どうしても試行錯誤で感覚的にならざるを得ない
461 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 13:33:34 ] >>460 カッコで括ったら式になるってちゃんと書いてあるだろ
462 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 13:35:08 ] そんなところで試行錯誤した覚えはないなあ
463 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 13:42:42 ] p(2*10) #=> 20 p (2*10) #=> 20 p(2*10)*2 NoMethodError: undefined method `*' for nil:NilClass p (2*10)*2 #=> 40
464 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 13:45:38 ] > メソッドの引数のカッコはメソッド名と分かれてはいけない これが書いてないだろ?
465 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 13:49:36 ] >>459 O(nlogn)の近似アルゴリズムに変えるか、Inline C 使うか、 そもそも C で書け。
466 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:42:27 ] ,―ヽ_(((((_、― ,/ ノ ヽ ~\ / ノ IPA ヽ ~\ / ノ ヽ、 `ヽ | ノ / ̄\ / ̄~ヽ ヽ i | ノ | ノ \ | <●> <●> ( ) \ | | | i / | / ヽ レ i (●_●) / i、 ,-――-、 ・ / i、 <(EEEEE)> ∵/ 多項式時間や指数関時間な計算が遅いのは当たり前だろ i、 \ ./ / \ ーー ,ノ ,,.....イ.ヽヽ、ー-―一ノ゙-、. : | '; \_____ ノ.| ヽ i | \/゙(__)\,| i |
467 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 19:53:39 ] 多項式時間や指数関時間の計算をRubyでやる男の人って・・・
468 名前:デフォルトの名無しさん [2010/02/13(土) 20:57:16 ] マルチバイトの文字列のうち、ASCIIの制御文字にあたるもの(NULLとかCRとか) を削除するには sub /\s+/, '' でいいですか? 0x00〜0x1fだけを削除するにはどうしたらよいですか?
469 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:18:32 ] irb> p "ね\001こ\t大\025す\177き\n".gsub(/[[:cntrl:]]/){''} == "ねこ大すき" true irb> p "ね\001こ\t大\025す\177き\n".gsub(/(?![[:space:]])[[:cntrl:]]/){''} == "ね こ\t大すき\n" true
470 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:18:33 ] 普通に /[\x00-\x1f]/ じゃダメなの?
471 名前:デフォルトの名無しさん [2010/02/13(土) 21:21:50 ] 飼ってたインコを食べたので猫はきらいです
472 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:29:55 ] >>469 名前つきでわかりやすそうに見えて実はわかりにくいというなんとも
473 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:30:57 ] キャリッジリターンやラインフィードは立派なコントロールコードですよ
474 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:35:40 ] >>470 いいんじゃまいか
475 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:42:39 ] > 0x00〜0x1fだけを削除するにはどうしたらよいですか? こういうの見るたび、DELは消さなくていいんだろうか、といつも思う
476 名前:デフォルトの名無しさん [2010/02/13(土) 21:55:53 ] ISO-2022-JP文字列に対して実行してESC(0x1B)を消されてしまえー。
477 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:07:14 ] >>467 Ruby を愛しています ゆるしてください
478 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:25:51 ] 童貞のくせに愛なんて言葉を軽々しく使うな
479 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:46:25 ] rubyはJavaの1000倍の生産性があると聞いてやってきました
480 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:54:29 ] エロ画像を一括でスクリプトとか書くならそれぐらいあるかもしれない
481 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:05:47 ] RubyでJSON(と言うかJavaScriptのオブジェクトの記述)をパースしたいのですが require "yaml" p YAML.load('{"num":"123456789"}') とかやるとエラーになってパースできません。何か良い方法があったら教えてください p YAML.load('{"num": "123456789"}') ならパースできるようですが、JavaScript的にはどっちでも通るはず・・・
482 名前:デフォルトの名無しさん [2010/02/13(土) 23:39:39 ] # 正しいところを見ているのかちょっと自信がないけど。 yaml.org/spec/1.1/index.html#id933010 Explicit Values An explicit value is denoted by the “:” indicator, followed by separation spaces. 仕様かも?
483 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:41:07 ] 面倒でなければ、gem install jsonで JSON.parse(json_str) するのが簡単で確実。
484 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 08:04:15 ] ちょっとあなた RubyInlineでインスタンス変数を参照する方法がわかりませんわよ