- 1 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 11:47:53 ]
- オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。
Ruby Home Page www.ruby-lang.org/ja/ = 前スレ Rubyについて Part 29 pc11.2ch.net/test/read.cgi/tech/1193668038/ 過去スレ・関連スレは >>2-
- 52 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 02:38:48 ]
- (gdb) run -ve 'abort'
Starting program: /home/fugafuga/ruby/miniruby -ve 'abort' [Thread debugging using libthread_db enabled][New Thread 47622444985680 (LWP 1553)][New Thread 1073756496 (LWP 1556)] ruby 1.9.0 (2008-01-18 revision 0) [x86_64-linux] [Thread 1073756496 (LWP 1556) exited] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 47622444985680 (LWP 1553)] 0x000000000078e860 in ?? () (gdb) bt #0 0x000000000078e860 in ?? () #1 0x00000000004173a4 in rb_enc_precise_mbclen (p=0x2b4ff604ef50 "status", e=0x2b4ff604ef56 "", enc=0x785a40) at encoding.c:755 #2 0x00000000004a6037 in coderange_scan (p=0x2b4ff604ef50 "status", len=<value optimized out>, enc=0x785a40) at string.c:137 #3 0x00000000004a60a7 in rb_enc_str_coderange (str=<value optimized out>) at string.c:161 #4 0x0000000000418414 in rb_enc_compatible (str1=<value optimized out>, str2=<value optimized out>) at encoding.c:657 #5 0x00000000004a5da3 in rb_str_cmp (str1=47622429929296, str2=47622429929302) at string.c:1427 #6 0x00000000004a2055 in st_lookup (table=0x77c710, key=140736226213792, value=0x7fffb4c53f98) at st.c:294 #7 0x0000000000464390 in rb_intern3 (name=0x4f862d "status", len=6, enc=0x785a40) at parse.y:8910 #8 0x00000000004bd80c in rb_iv_get (obj=47622429695480, name=0x2b4ff604ef56 "") at variable.c:1925 #9 0x000000000043113e in sysexit_status (err=47622429929296) at eval_error.c:229 #10 0x00000000004361ea in ruby_cleanup (ex=1) at eval.c:191 #11 0x0000000000436242 in ruby_run_node (n=0x2b4ff6016000) at eval.c:258 #12 0x0000000000416cfd in main (argc=3, argv=0x7fffb4c54298, envp=<value optimized out>) at main.c:35
- 53 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 02:42:44 ]
- こんな感じ。追っかけてみると
miniprelude.cを読んで、abortを読んで、メインスレッドが終了して、 それから正常終了するはずなんだけど、なぜかstatusというのを読もうとして コアを吐く。ううむ・・
- 54 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 13:01:10 ]
- >48
作者です 家に帰ったら探してみます どこにアップすれば良いですか?
- 55 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:12:05 ]
- >>54
恐れ入ります ここはどうでしょうか? www11.axfc.net/uploader/20/ # *.gzに対応してるみたいです。 ちなみに元に有った場所に再公開はありませんか? リンクしているサイトも多いようですし・・・
- 56 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 16:06:31 ]
- あ
- 57 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 16:24:46 ]
- >>53
p enc_tableしてみて。 あと環境変数LANGとかLC_ALLとかは?
- 58 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 20:22:49 ]
- >>57
(gdb) p enc_table $2 = {list = 0x7d07f0, count = 78, size = 80, names = 0x7d0d00} LANG=Cにしてるけど、関係ないんじゃないかなあ。 [ruby-dev:33099]の変更でdmyencoding.cが入ったからとにかく エンコーディングに関係してるのはわかるけど・・・ ちなみに鳥はUbuntu gutsyで、setarch i386してビルドするとちゃんと 出来るんだよね。まったく!
- 59 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:28:05 ]
- win32版ruby1.9だけど
>ruby19 -ve "g=ThreadGroup.new;t=Thread.new{sleep 5};z=0;begin g.add t;z+=1;Thread.pass end until g.list.include?(t);p z" ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32] 6 #こいつは実行するたびに違う、本来なら1で無ければならないはず スレッドを作ってすぐには、スレッドグループの変更ができない どう書く?orgの「ワーカスレッドを安全に終了させるまで待機」のお題を1.8で解いたので 1.9でも動かしてみたらさっぱり動かんのでいろいろ試したら ThreadGroup#addが機能してなかった 真にスレッドグループの変更が成功するまでThreadGroup#addを行うと1.9でも動くようになった
- 60 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:54:22 ]
- 1.9でネイティブスレッド化したので標準入力からのgetsがキャンセルできるか試してみたら
>ruby19 -rtimeout -ve "s='';timeout(5){s=gets};p s" ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32] -e:1:in `gets': execution expired (Timeout::Error) エラーが出るので、自前でやると >ruby19 -ve "s='';t=Thread.new{s=gets};n=Time.now;Thread.new{sleep 5;puts %!sleep #{Time.now-n}!;t.kill};t.join;p s" ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32] sleep 0.0 "" いきなり終了してsleep 5が機能していない 時間を計って5秒待つとうまくいく >ruby19 -ve "s='';t=Thread.new{s=$stdin.gets};Thread.new{n=Time.now;sleep 0.01 while Time.now - n < 5;puts %!sleep #{Time.now-n}!;t.kill};t.join;p s" ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32] sleep 5.0 ""
- 61 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:00:38 ]
- 1.9のsprintf
>ruby19 -Ks -ve "p sprintf('%s','ソ').encoding" ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32] #<Encoding:Shift_JIS> でも幅を指定すると >ruby19 -Ks -e "p sprintf('%10s','ソ').encoding" #<Encoding:ASCII-8BIT> ん?そして >ruby19 -Ks -e "p sprintf('%10s%s','ソ','ソ').encoding" -e:1:in `sprintf': character encodings differ (ArgumentError) なんでやねん! しかし、文字の幅もバイト数じゃなくて本当の文字の数で計算されるので フォーマット文字列の%sの幅指定はあまり使い道がなくなったような… まあUTF8だともともと使えなかったんだろうけど
- 62 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:08:25 ]
- >>58
> (gdb) p enc_table > $2 = {list = 0x7d07f0, count = 78, size = 80, names = 0x7d0d00} >>52をみると#1,#2のencの値が妙に小さいんで、レジスタの最適化で消えちゃっ てのかと思ったが、enc_tableの中身も同じような感じだな。 ついでに、この#1,#2のencの中身は? 念のために聞くけど、最新版で起きるんだよね。
- 63 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:20:48 ]
- >>62
ども。rb_enc_precise_mbclenにbreakpointを設定して p enc->name するとASCII-8BITを返す。 > 念のために聞くけど、最新版で起きるんだよね。 少なくともr15052以降ずっと起きてる
- 64 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 07:15:07 ]
- >>32
亀レスだけどありがとう、助かりました
- 65 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 12:34:02 ]
- >>55
アップしました キーワードはrubytkです >ちなみに元に有った場所に再公開はありませんか? 確か新年早々にハード故障したとか聞きました リプレースは済んでるらしいのですがデータは消えたのかも知れません 確かにアクセスできませんね 復旧予定は未定ですスミマセン しかしこの文書まだ見てる方がいるとは思いませんでした
- 66 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 17:26:45 ]
- >>65
アップありがとうございます 1ページに集約してるのが気に入ってよく利用してました
- 67 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:12:56 ]
- builder.japan.zdnet.com/news/story/0%2C3800079086%2C20365095%2C00.htm
Rubyヤバス
- 68 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:29:57 ]
- これはRuby公式サイトのリファレンスマニュアルが503ばっかり出すせいだな
そうにちがいないッ
- 69 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:45:10 ]
- ようやくAmrita2.0.0のリリースが来たー!と思ったら
先頭にこんな記述があった require 'rubygems' require 'hpricot' CGIスクリプトから使おうと思ってた俺涙目w
- 70 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:52:05 ]
- 自分とこでgems使うんならいいけどライブラリでgems使うとかやめちくれ
- 71 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:56:53 ]
- それぐらい自分で改編しろよ
簡単だろ
- 72 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:00:03 ]
- 直書きせずに、ユーザー環境の -rubygems に頼るべき
- 73 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:13:31 ]
- いちいちrequire 'rubygems'なんて書かないといけないのが問題
- 74 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:25:36 ]
- >>> python > ruby
True
- 75 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:55:06 ]
- irb(main):001:0> python > ruby
NameError: undefined local variable or method `python' for main:Object from (irb):1 from :0
- 76 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:56:35 ]
- irb(main):007:0> puts ["python", "Ruby", "perl", "php"].sort.join(" > ")
Ruby > perl > php > python
- 77 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:02:23 ]
- (;`Д´)・・・・・
- 78 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:05:30 ]
- >>74-76
本すれで下らないからやめてくれる?
- 79 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:05:58 ]
- perl(ruby, python) > php
- 80 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:07:32 ]
- >>78
半年ROMれ
- 81 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:12:14 ]
- >>> {'Ruby':'ruby','Python':'python','Perl':'perl'}
{'Python': 'python', 'Ruby': 'ruby', 'Perl': 'perl'}
- 82 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:16:59 ]
- >>78
たぶんテスト期間の大学生が、ストレス発散しに来てるんだよ 温かい目であぼーんしてあげようぜ
- 83 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:13:50 ]
- >>69-74
俺は以下のようにしてるけど、これなら ok だよね? begin require "hpricot" rescue LoadError require "rubygems" require "hpricot" end
- 84 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:17:13 ]
- vm_opts.hの最適化スイッチを全部onにして-O6でコンパイルしたら
かえって遅くなっちゃった(´・ω・`)
- 85 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:32:28 ]
- hpricotって流行ってるの?
前試したら文法が変態的なのとXPathでエラーも出さずに とんでもない挙動を示した覚えがあるんだが
- 86 名前:50 mailto:sage [2008/01/19(土) 21:39:30 ]
- x86-64だと、abort/exitで落ちるバグはakrさんのr15127のコミットで直りますた。
ありがとうありがとう。 ところで、x86-64は青木さんが毎日checkbuildしてたはずなんで参考になるかなと 思って見たんだけど、どうでもいいエラーで止まってて吹いた。 Ruby-Statusのところで結構ビルドしっぱいしてるけど、内容見るとくだらない ミスなんだよなあ。たまにチェックとかしないんだろうか。
- 87 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:51:22 ]
- >>70-71
rubygemsの方は、自分で書き換えれば何とかなるけれど hpricotの方はどうしようもないな 速度を考えてhpricotにしたんだろうか
- 88 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 00:07:05 ]
- Ruby のテストについて質問させてください。
DHCP の設定ファイルを生成するようなプログラムの受け入れテストを書いているんですが、 テストを実行するホストのネットワーク情報に応じて、テスト内容を変えたいと思ってます。 具体的には、dhcpd.conf に書き込む IP アドレス、ゲートウェイアドレス、ネットマスクをテストを 実行するホストと同じにしたい (IP アドレスだけは、ホストと同じネットワークの空いてる IP アドレスを 自動的に割り当てたい) んですが、うまい方法はあるでしょうか。ネットワーク系のテストを簡単に してくれるような RSpec のプラグインとかがあれば最高なんですが。。。
- 89 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 01:22:42 ]
- 今日Ruby試験だったね。受けた人いる?
- 90 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 01:53:17 ]
- >>88
NICが何枚も刺さってる場合は?
- 91 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 02:32:49 ]
- 公式サイトのインストールガイド(MacOSX)に平然と1.9を勧めてるのはいかがなものか。
1.9でirbが普通に通るようになったのは嬉しいけど。
- 92 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 02:34:19 ]
- マカはコードかかねーから無問題
BSD上がりの奴は1.9がなんなのか心得てるだろうしw
- 93 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 02:49:35 ]
- 1.8は最初から入ってるから1.9の紹介してるのかね?
- 94 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 02:59:54 ]
- rubyはとんだスイーツ言語
- 95 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 05:27:10 ]
- >>94
syntax sugarがかかってるもんね。おいしいけど。
- 96 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 11:24:36 ]
- >>95
しかしそんなとこには虫が湧くんだよな。
- 97 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:03:36 ]
- Syntactic sugar causes cancer of the semicolon.
-- Alan Perlis
- 98 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:08:13 ]
- SICPだっけ?
セミコロンは湧かないけどendがね・・・
- 99 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:58:04 ]
- [ruby-list:44517]
> 503 Service Unavailableで見えないことが多くなっていた > www.ruby-lang.org/ja/man/ を /ja/man/html/ 以下においた > 静的HTMLへのリダイレクトに変更しました。 さっそく見に行ってみたけど、本当に軽くなってて感動した でもこれどうやって編集すればいいんだろう
- 100 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:26:37 ]
- >>99
とりあえずの急場しのぎにはいいんじゃね? googleでのサイト内検索ボックスくらいつけてほしいけど・・・ 503は、人多すぎで出してるんだっけか サーバー増強千ならんのかねえ
- 101 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:27:31 ]
- どっちにしろミラーサイトはいるな
- 102 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:51:51 ]
- 編集リンクだけwikiにしてあとは性的HTMLにすればいいのにね。
- 103 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 01:53:20 ]
- つまりエロが足りないんですね。
- 104 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:03:24 ]
- ミラーサイト勝手に作ったら怒られる?
- 105 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:08:35 ]
- つ ttp://www.ruby-lang.org/ja/man/html/_C7DBC9DBBEF2B7EF.html
- 106 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 15:21:41 ]
- Ruby 1.9のジェネレータって
def fib(max=1000) a = b = 1 loop { raise StopIteration if b > max yield b a, b = b, a + b } end g = enum_for(:fib) loop { p g.next } みたいにメソッド作らないと使えない? あとend?とかって無くなった?
- 107 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 15:23:59 ]
- 補足
1.8のGeneratorみたいなのが欲しい
- 108 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 15:35:54 ]
- Rubyのジェネレータってcall/cc使ってて、
1.9ではcall/ccが動くんだかどうだか妖しいらしいという話があった気がするので、 すごく、こわいです。
- 109 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 19:00:29 ]
- 今さっき気づいたんだが
アンサイクロペディアって「Ruby」の項目はないのに「eRuby」の項目はあるのね
- 110 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 22:32:00 ]
- >>108
伝聞で怖がる暇で確認すりゃいいのに。 動くよ。結局コアから外れたってだけ
- 111 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 05:25:55 ]
- >>108
1.9はFiberじゃないの?
- 112 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 22:45:36 ]
- 1.9のEnumeratorはFiberを使ってる
そして、Enumeratorにnextとrewindメソッドが追加されて外部イテレータとしても使えるようになった >あとend?とかって無くなった? ジェネレータライブラリは1.9でもそのまま残ってるのでそれを使えといいたい所だが エラーで動かない 1.9付属のジェネレータはcall/ccじゃなくてThreadを使うようになっているが (YARV化で?)Thread.criticalが無くなったせいで動かなくなったようだ そのうちFiber化するか、あるいは重複機能となったgenerator.rb自体が消滅するか… ちなみにcall/ccを使っている1.8付属のジェネレータは1.9でも動く
- 113 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 23:37:46 ]
- Rubyの拡張モジュール作ってて、Rubyのメインスレッドとは別のスレッド
を複数使ってる。これらのスレッドはシステムコールでブロックすること がある。 ユーザがたとえばCTRL-C押したり、killしたりしたときに、それぞれの スレッドのブロックを解除してあげたくて、シグナルを補足して投げて あげたい。 だけど、あるシグナルのsigactionは他のスレッドで呼ばれるかもしれないし、 どうしたらいいか悩んでます。皆さん、どうしてます?
- 114 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 00:33:48 ]
- > 1.9のEnumeratorはFiberを使ってる
もしよれければ、その辺の利点をkwsk Fiberってプリエンティプティブスレッドというか、コルーティンンのことだよね?
- 115 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 14:41:38 ]
- 1.9.1まだあああああああああああああああああああああああああああああああああああ
- 116 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 21:44:25 ]
- 再帰呼び出しを伴うようなアルゴリズムの可視化ってどうやったら良いんでしょうか?
たとえば、バブルソートみたいなループのアルゴリズムを表示する場合だと、 # Model class Bubble def sort # ソートのループを一度だけ実行 end end # View b = Bubble.new([3, 5, 8, 1, ...]) while(not b.finished) do b.sort show b # GUI に表示 end などとできると思うのですが、クイックソートみたいな再帰だと、この仕組みでできますか? なお、できるだけソートアルゴリズムの方には描画処理を入れたくないので、Model と View に分けてます。
- 117 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 22:14:27 ]
- >>116
Kernel#set_trace_func を使えば出来ると思うけど 使った事ないんで詳細は自分で調べてくれ
- 118 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 00:10:57 ]
- ソートにブロック渡せるようにすれば?
- 119 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 00:23:47 ]
- ネイティブスレッド使えれば、とか
描画イベント用の delegate渡す的なことを思ったけど、 rubyでなら >>118 が楽そうだ
- 120 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:30:01 ]
- >>115
1ヶ月以上バイナリストリングの話をしてるのに出せるわけないだろwww
- 121 名前:113 mailto:sage [2008/01/26(土) 22:42:40 ]
- 自己レスですが、ドライバのclose処理をいじって、システムコールでブロック
しているスレッドを起床させることにしました。 なので、シグナルは補足しないことに。
- 122 名前:デフォルトの名無しさん [2008/01/27(日) 07:52:25 ]
- 世界的にそこそこ有名な国産プログラミング言語ってrubyだけか?
- 123 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 08:05:40 ]
- というかほかに、和製のプログラミング言語って存在するのか?
(なでしこ等の日本語プログラミング言語は別として)
- 124 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 08:13:21 ]
- >>123
activebasicとか
- 125 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 08:57:16 ]
- >>123
なんで「なでしこ」を別扱いするんだよw
- 126 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 09:10:34 ]
- HSP(笑)
- 127 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 09:19:13 ]
- >>125
日本語プログラミング言語は、海外の人が使えるものじゃないだろう
- 128 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 09:32:19 ]
- >>127
そんなマジレス返ってくると思ってなかった・・・
- 129 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 10:58:43 ]
- perlで @a = (0..9, 15, 20..29) と書くと「..」を展開した配列が得られますが、rubyで[0..9, 15, 20..29]と書くと「..」の部分はRangeオブジェクトになってしまいます。
これを展開した配列にする、最もシンプルな書き方を教えてください。 自分で考えた範囲では、 [0..9, 15, 20..29].map {|e| e.respond_to?(:to_a) ? e.to_a : e}.flatten ですが、あまりにもうざい……。
- 130 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 12:39:35 ]
- >>129
a = [(0..9).to_a, 15, 20, (20..29).to_a].flatten もしくは a = (0..9).to_a + [15, 20] + (20..29).to_a
- 131 名前:129 mailto:sage [2008/01/27(日) 17:18:57 ]
- >>130
やっぱその手の方法しかないですか。 何よりも見た目が美しくないのが気にいらないのですが、仕方がないのかなぁ。
- 132 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:21:17 ]
- 要素がRangeなら展開するラッパー書くしか
- 133 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:42:18 ]
- respond_to?(:to_a) で判定してると
[ "hello", 1, 2, 3, 4..5 ] が [ ?h, ?e, ?l, ?l, ?o, 1, 2, 3, 4, 5 ] になったりせんのかと危惧して試してみたら、 "hello".to_a は [ "hello" ] なのか。
- 134 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:04:41 ]
- [*0..9, 15, 20, *20..29] こんなのどうでしょう
- 135 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:16:20 ]
- >>134
syntax error
- 136 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:46:45 ]
- >>135
む、すまん、1.9 専用ってことで
- 137 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:22:19 ]
- ruby/tkのサンプル
/ext/tk/sample/tkextlib/treectrl/demo.rb を実行してみたもののtreectrlがバージョン2に上がったときに切り捨てたオプションがいっぱい使ってあってどうにもならんorz
- 138 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:16:37 ]
- >>114
> Fiberってプリエンティプティブスレッドというか、コルーティンンのことだよね? *ノン*プリエンティプティブスレッド
- 139 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:47:21 ]
- マイクロスレッドとも言うね。
外部イテレータを実装するなら一番シンプルな解決法だと思う。
- 140 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:58:44 ]
- >>138
うおw ノンつけてなかった、失礼した
- 141 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 09:47:20 ]
- イテレーターからbreakしたか/しなかったか判別する方法ある?
こんなことしたい min.upto(max) { |y| min.upto(max) { |x| return if breaked?(yeild(y, x)) } }
- 142 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 09:49:05 ]
- 例外投げる
- 143 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 10:50:25 ]
- trunk/ruby/doc以下ってほとんど無意味だよね
rdの文書はなんかさっさと本体に埋め込むべきだし、役に立つ情報は ほとんどない。リファレンスマニュアルを本家svnで配ればいいのに。
- 144 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 11:09:57 ]
- >>143
誰かruby-devあたりで提案してみたら?
- 145 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 12:41:18 ]
- 例外って本当にエラーが起こったときだけ使いたい。
- 146 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 13:03:40 ]
- LANG=ja_JP.UTF-8にしてるとベンチマークの
reverse_complementが遅い遅すぎる。というか、10分くらいたっても終了しない。 sliceに異常に時間がかかってる。LANG=Cとか-Knしておくと10秒くらいなのに。 これは・・・(;´Д`) ふだんはみんな-KsかEUC-JPで使ってるのかなあ
- 147 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 15:54:48 ]
- >>141
returnでtrue/falseかなんか返せば。
- 148 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 16:43:51 ]
- Array#eachって順番保障されてたっけ?
- 149 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 17:34:31 ]
- されるだろ常考
- 150 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 17:46:43 ]
- >>148
何か配列にトラウマでもあるのか
- 151 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 20:41:00 ]
- >>145 じゃ例外じゃない何かを投げる。具体的には throw して catch。
- 152 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 03:22:11 ]
- というかbreakされたかどうかのyield側の判別機構ってなかったのか。
できればつけて欲しいところだなぁ
|

|