[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 09:27 / Filesize : 208 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Rubyについて Part 30



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側の判別機構ってなかったのか。
できればつけて欲しいところだなぁ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<208KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef