Ruby について Part 4
■ このスレッドは過去ログ倉庫に格納されています
0001Just Another Ruby 2cher
NGNGRuby Home Page
http://www.ruby-lang.org/ja/
= 前スレ
* Ruby について Part 3
http://pc2.2ch.net/test/read.cgi/tech/1042004759/
= 過去スレ
* Rubyについて Part 2
http://pc3.2ch.net/tech/kako/1028/10289/1028906179.html
* Rubyについて
http://pc3.2ch.net/tech/kako/1012/10120/1012096319.html
0002Just Another Ruby 2cher
NGNG== [UNIX板]
* rubyを語るスレッド 3
http://pc.2ch.net/test/read.cgi/unix/1045705000/
* goRua(Ruby/Gtkによる2chブラウザ)ってどうよ。
http://pc.2ch.net/test/read.cgi/unix/1008120213/
== [プログラム技術板]
* Rubyの実装に疑問あり!
http://pc2.2ch.net/test/read.cgi/tech/1004873294/
== [WebProg板]
* 【Ruby】RubyでCGI
http://pc2.2ch.net/test/read.cgi/php/988948655/
* ゲームを作ろう!【PHP】【Perl】【Ruby】【ASP】
http://pc2.2ch.net/test/read.cgi/php/1030267927/
= その他
* Matzにっき
http://www.rubyist.net/~matz/
* Ruby Weekly News @ Ruby Garden
http://www.rubygarden.org/rurl/html/
* <rubyXML/>
http://www.rubyxml.com/
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGarray.push(a)
array.last.method()
p a
で、俺が何がしたいのか分かる?
どーすりゃいいの?
0006デフォルトの名無しさん
NGNGわからん
0007デフォルトの名無しさん
NGNGどう困っているのかもわからん
0008デフォルトの名無しさん
NGNG俺には困っているかどうかさえわからない。
0009デフォルトの名無しさん
NGNG日本語が不自由なことに困っていることは分かったyo
0010デフォルトの名無しさん
NGNGmethod() は Object#method のことじゃなくて、
なにか任意のメソッドを適用したいのかなあ?
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG> array.last.method()
の () にすげー違和感があるのオレだけ?
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGmethod ()
method( )
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG'1_000'.to_f が 1.0 になるのは納得いかん。
0019デフォルトの名無しさん
NGNGたしかに1.6は_を認識しないな。
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG制限しようと思うのですが、
どうすればいいでしょうか?
IOオブジェクトならgetcしながら、ファイルサイズを
計算すればいい(?)のでしょうが、
CGIオブジェクトはどうすればいいかわかりません。
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG向こうが送りつけてくるものは制限できないから、
受け取ったあとでちょんぎるなりsizeとってエラー出すなりすればいいんじゃないの?
0024デフォルトの名無しさん
NGNGもしCGIプロセスのメモリ消費を気にしているなら、
CGI#stdinput を再定義して自作のバッファに差し替えるという手もある。
そのバッファオブジェクトは read と binmode だけ持っていれば良い。
0025デフォルトの名無しさん
NGNG自宅サーバーじゃないから残念ながら設定できないです。
>>23
たしかに、sizeとってエラーが一番簡単そうですね。
>>24
一度、挑戦してみます。
ありがとうございました。
0026デフォルトの名無しさん
NGNGアップローダみたいに送られてくるデータが大きくなったとき、
データが送られてくるのが完了する前に中断されると
CGIオブジェクトの初期化のところで延々と止まってしまう。
どうしたらいいだろうか。
0027デフォルトの名無しさん
NGNGtimeout(delay){cgi=CGI.new}
rescue TimeoutError
exit(1)
end
0028デフォルトの名無しさん
NGNGprint "ContentType: text/plain\n"
print $0
ってかいただけのファイルを作ってApache1.3.27+mod_ruby越しに見るとfalse、
コンソールで実行すると空文字列が$0に入ってた。
リファレンスとなんか違うし、このままだと$0 == __FILE__とかが出来ないので困る。
ActiveScript Rubyにくっついてたruby-1.6.8`を使って同じスクリプトを
win2kのコンソールで実行すると、$0には実行しているスクリプトの名前が
入ることは確認できたんだが、何が悪いんだろう。ruby入れ直せば直るのかな。
0029デフォルトの名無しさん
NGNGバグだと思うなら、前田さんへ。
コンソールで実行ってのは、普通のrubyコマンドで$0が空だったってこと?
003028
NGNG>mod_rubyはruby_options()もruby_script()も呼んでないので、$0が初期化されない。
$0mod_rubyが正しく動いている時、$0が初期化されていないなら、
$0にはnilが入ってるのかな?
何でfalseが入ってたのだろう。
>コンソールで実行ってのは、普通のrubyコマンドで$0が空だったってこと?
test.rbにprint $0と書いてruby test.rbとすると、出力はContentType: text/plainだけだった。
でも28を書いた後p $0って行を追加してみたら"test..rb"が出力されてきた。
ごめん、空じゃなかったね…。
あと、リファレンス見てprint $0.inspectとやってみたが、出力には何も出てこないようだ。
うーん、やっぱりよく解らない……。
00317cさん
NGNGruby 1.6.8 (2002-12-24) [i386-cygwin]
irb(main):001:0> a = [1,2,3]
=> [1, 2, 3]
irb(main):002:0> a[0,5]
=> [1, 2, 3]
irb(main):003:0> a[1,5]
=> [2, 3]
irb(main):004:0> a[2,5]
=> [3]
irb(main):005:0> a[3,5]
=> []
irb(main):006:0> a[4,5]
=> nil
要素無しのArray?
0032デフォルトの名無しさん
NGNGzsh とか使ってない?プロンプトで出力が消されたんじゃない?ちゃんと改行しとけ。
0034デフォルトの名無しさん
NGNG> 何でfalseが入ってたのだろう。
$0の実体はrb_prognameという変数で、これはとくに初期化されてないので0になってる。
で、CレベルではQfalse==0ということ。
0035デフォルトの名無しさん
NGNG部分配列の先頭自体が範囲を外れてるから。
0037デフォルトの名無しさん
NGNGつまり、3だと最後の要素の後ろになる。
a[2,5] # [1, 2, < 3 ] X X >
a[3,5] # [1, 2, 3 < ] X X X >
a[4,5] # [1, 2, 3 ] X < X X X >
# Xは無効な範囲ね。
0038"c"*7さん
NGNGそういうイメージなのですか……。
一貫性がない気がするが……。
予備のスペースとして一個とってあるのかとか色々考えてしまった。
処理的には nil or size == 0 するだけだからいいっちゃいいんだが。
1.8でも変わらんのですか?
0039デフォルトの名無しさん
NGNGa[4,5].to_a.empty? とか。
0040デフォルトの名無しさん
NGNGサンキューです。
それで逝きます。
FAQっぽいけど、これって既知?
0041デフォルトの名無しさん
NGNGp [0,1,2][-2..-1]
p [0,1,2][-2..+0]
p [0,1,2][-2..+1]
0042デフォルトの名無しさん
NGNGマイナスは末尾から数えるというだけで、とくに変わりはないんだが。
> p [0,1,2][-2..-1]
[0, <1, 2>] # size=3, 3-2=1, 3-1=2
> p [>0,<1,2][-2..+0]
(3-2=1) > 0なんで、空
> p [0,1,2][-2..+1]
[0,<1>,2] # 3-2=1
空にならないのは..はendを含むから。
p [0,<>1,2][-2...1]
なら空になる。
ちょっと分かりにくいのはこれかな。
p [0,1,2][0..-4]
X>[<0,1,2]
0043デフォルトの名無しさん
NGNG> > p [0,1,2][-2..+1]
> [0,<1>,2] # 3-2=1
なるほど、そう考えれば 0 は入らないのか。さんくす
0044デフォルトの名無しさん
NGNGまさにそれです。ありがとうございました。
0045デフォルトの名無しさん
NGNG'#' と '::' と '.' の違いを分かりやすく教えてください。
0046デフォルトの名無しさん
NGNGint main(){
char a='〇',b='●';
int c,n;
for(c=1;c<=91;c++){
if(c%2==1){
printf("%s",a);
}
else if(c%2==0){
printf("%s",b);
}
for(n=1;n<=9;n++){
if(c==9*n){
printf("\n");
}
}
}
}
0047デフォルトの名無しさん
NGNGドキュメントのことだよね?
--- Hoge#moe(arg)
Hogeのインスタンスメソッドmoe()
--- Hoge.nae(arg)
Hogeのクラスメソッドnae()
--- Hoge::SAGE
Hogeの定数SAGE
これは文法と言うよりドキュメントでの慣習。
実際のコードでは、
hoge = Hoge.new
hoge.moe("shine")
Hoge.nae("shine") # Hoge::nae("shine")と書く人もいる。
Hoge::SAGE
と使う。
クラスメソッドに"."を使うか"::"を使うかは好みなのかな?(意味は同じハズ)
0048デフォルトの名無しさん
NGNGプログラム中では '::' と '.' は全く同じ意味なんですね。
あと、refeのドキュメントではSingletonメソッドとInstanceメソッドで '.' と '#' を使い分けてる気がします。
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGブロックを抜けるときにcloseする。
だから例外を投げれば、ブロックを抜けないように細工してない限りcloseされるよ。
0052デフォルトの名無しさん
NGNG0053
NGNGこれってライセンスに問題ある?
色々検索してみたけどよく分からない・・・
0055デフォルトの名無しさん
NGNGじゃあやめとけ。
ていうか作ってから言え。
0056デフォルトの名無しさん
NGNGどんな方法があるんでしょうか?
今は
$ ruby << EOF
puts "AAAA"
EOF
AAAA
とかやってるんですが・・・。
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGirb、知りませんでした。
これでできそうです。
情報thxです。
0059デフォルトの名無しさん
NGNGデュアルライセンスのArtisticの方を取れば平気では?
検索掛ける前にライセンス文章読むほうがいいと思われ。
0060デフォルトの名無しさん
NGNGputs "AAAA"
^D
AAAA
じゃだめなの?
0061デフォルトの名無しさん
NGNG>>60
サンキュー
作ってから「ダメでした」じゃ労力の無駄じゃないか、バカ
0063デフォルトの名無しさん
NGNGバカのためにわざわざ時間を割いてライセンスについて解説するのも
労力の無駄じゃないか、バカ
0064デフォルトの名無しさん
NGNGんな事言ってたら掲示板やMLの存在価値が薄くなるじゃん。
そういう人に限って解説出来るほど知識なかったりするんだけどね。
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGで、 tarball の COPYING (COPYING.ja) は読みましたか?
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGそれ、サイトにあったから読んだけどよく分かんない。
rubyを組み込んだシェアウェアの場合、”3”に該当すると思うんだけど、
3. 以下の条件のいずれかを満たす時に本プログラムをコンパイ
ルしたオブジェクトコードや実行形式でも配布できます.
(a) バイナリを受け取った人がソースを入手できるように,
ソースの入手法を明示する.
(c) 変更を行ったバイナリは名前を変更したうえ,オリジナ
ルのソースコードの入手法を明示する.
(a)の指すソースというのは、rubyではなく作ったソフト?
(c)で「オリジナル」ってわざわざ書いてるからには、
(a)はrubyが組み込まれたアプリのソースなんだろうな・・・
ならシェアウェアとは相容れない気がする。
0069デフォルトの名無しさん
NGNG3(a)はRubyそのものをバイナリ配布するときの規定と思われるので、
3(c)にだけ従えばいいんじゃない?
つまり、Ruby embedded なソフトウェアは
1) Ruby と名乗ってはいけない
2) Ruby の入手先を明示する
だけでいいと思う。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGRite のリリースにあわせてライセンスも変わるのでは。
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNGregex.[ch]を含むならそうなのでは?LGPLの5と6を読む限りそうとしか思えん。
0075デフォルトの名無しさん
NGNGさらに、mswin32/mingw32/bccwin32版の場合はwin32/win32.[ch]のライセンスも
絡んでくるのでよくよく考えてみる必要がありそう。
0076デフォルトの名無しさん
NGNGThread.start {
while !flag
do_something
end
}
while line = gets
if line.chop == 'end'
break
end
end
メインスレッドはユーザーの入力待ち、生成したスレッドはユーザーの終了コマンドが
来るまでずっと何かをし続ける。というスクリプトが書きたかったのですが、
上記のスクリプトだとメインスレッドのgetsのせいで生成したスレッドが動いてくれません。
何か良い方法などがありましたら、教えてください。
007776
NGNGWinXP+mswin32バイナリ
です。よろしくお願いします。
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG008176
NGNGガ━━ΣΣ(゚Д゚;)━━ン
そうですか、FAQでしたか・・・
>>76でしたいことは、
ひたすらデータを集め続け、ユーザーが任意のタイミングで
データ集めを終了させ、集めたデータをメモリからファイルに書き出す。
ということなんですが、別にスレッドを使わなくてもgetsを使わなくても
良いので何か代替案はありませんか?
0082デフォルトの名無しさん
NGNGCtrl+Cを押す、とか。
0083デフォルトの名無しさん
NGNGそれだと、ファイルへの書き出しが出来なくなりませんか?
集めたデータに対して変更をする可能性があるので
データをメモリ上に置いておきたいので、集めた物から逐一書き出し
することは出来ません。最後に必ず実行したいのです。
と、ここまで書いて思い付いたのですが、『最後に必ず』と言うことで、
例外処理のensureでやれそうな気がしました。Ctrl+CのInterrupt例外クラス
を捕捉してやってみようと思います。>>82氏サンクス。
008476 == 83
NGNGtrap(:INT) {
stopFlag = true
}
while !stopFlag
do_something
end
ファイルへの書き出し処理コード
========================================
上記の方法で、Ctrl+Cでファイルへ書き出して終了させることが出来ました。
皆さん、ありがとうございました。
0085デフォルトの名無しさん
NGNG終了時にVC.NET がmemory leakだとかいって
オブジェクトをdumpずーーっとします。
何か間違ってる可能性がありますか?
ちなみに、新規プロジェクトでなんにもない状態から、
ruby_init();
ruby_finalize();
ってやっただけです。
1.6.8 と1.8.0 で両方試してみましたが、ダメでした。
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNGそういうもんなので気にしなくてよろし。
0088デフォルトの名無しさん
NGNG組込みクラスとかシンボルテーブルとか、開放しないものはいっぱいある。
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGなくちゃいけない理由は?
0091デフォルトの名無しさん
NGNG別に。「あればいい」だけで「なくちゃいけない」とは誰も言ってませんが。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGやっぱ処理系側が面倒見るのがいいんじゃ。
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNGp {"a"=>1} # Error
p ({"a"=>1}) # OK
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNGそれってmalloc/freeの部分の話も含んでる?
だとしたらfjでの某論争がここに再現するかも(w
0098デフォルトの名無しさん
NGNGrubyコマンドの話なら、malloc/freeはどうでもいい。
ただ、rubyエンジンをないそうしたアプリケーションの場合は、
ちゃんとfreeした方が良いんじゃないか、とは思うが。
0099デフォルトの名無しさん
NGNGdef a.foo
end
なんで定義できないんだよ!
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG即値なのはFixnum。
でも、即値だから定義できないのだっけ?
一時期できていたのを、意図的にやめた気がします。
0104デフォルトの名無しさん
NGNG010597
NGNGライブラリとしての完成度を高めるための余分な手間を
かけたくない、ってことでよろしい?
0106デフォルトの名無しさん
NGNGこれはどうしてエラーになるの?
初心者でスマソ。
0107デフォルトの名無しさん
NGNGというよりも、その部分に手間をかけたい人が今のところいないってことかと。
ruby-dev にご参加ください。
010897
NGNGなるほど。自分はぜんぜん詳しくないけど、そういう話題が
ふさわしい時期、たぶん1.9か2.0の開発が始まる頃までに
そういう問題提起をできるまでのスキルになりたいっす。
かんばりまふ。(devは見てますよ、いちお)
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGブロックがイテレータとして扱われるからでは。
0112デフォルトの名無しさん
NGNGdef q() puts yield end
for line in <<EOS do eval(line) end
q { "helo, world" }
q { 1 <= 2 }
q { 1 => 2 }
EOS
0113デフォルトの名無しさん
NGNGa = 3 + 5 * 7; p a
の結果が、3の+メソッドに5を渡した返り値8。
返り値8の*メソッドに7を渡した返り値56がaにあると考えるのが、
メソッドだとすると普通だと思うのですが、結果は38です。
いったいこれのどこがメソッドなのでしょうか?
0114デフォルトの名無しさん
NGNGマニュアルにある理由じゃない?
>プログラミングの利便のために一部のメソッド呼び出しと制御構造は演算子形式をとります。
0115113
NGNG電子の妖精さんが、実行順序を算数の普通に変更してくださってると、理解しときます。
それはさておき、
Fixnumは即値であるという表現がされていますが、
そのオブジェクト自身の値を変えられないのは即値であるという理由からなのでしょうか?
Bignumは即値でないそうですが、「i++」のように、値を変えても問題ないのではないでしょうか?
0116デフォルトの名無しさん
NGNG数値を変えられないのは仕様だろう。mutableな数値はなかなか奇抜な発想では?
num0 == num1 ならば num0.id == num1.id が成り立って欲しいくらいだが、
それだと効率が悪いからFixnum以外はそこまではしないのだと思われ。
だからFixnumが即値なのは理由というより単に実現方法じゃないかな。
即値それ自体は言語仕様には関係のない用語だと思う。
0117デフォルトの名無しさん
NGNGRuby/Gtkプログラミング入門の書籍を見てんだけど載ってない。
これは、自分で管理した方がいいということかな。
0118デフォルトの名無しさん
NGNGchildren かなんかで取れなかったっけ?
確か、はるか上のクラスで定義されてるんだよ。
0119117
NGNGrbbr.rb でいろいろ調べてたら分かりました。
get_text(row,column) で取得可能でした。
0120デフォルトの名無しさん
NGNGCListはobsoleteなんで、これからやるなら
Ruby/GTK2のTreeView周りもよろしく。
0121デフォルトの名無しさん
NGNG前の方のレス見れ!!!……と思ったら、このスレじゃなかった。スマソ。
↓ i++ とか mutable とかの話をしてる。
[UNIX板] rubyを語るスレッド 3
http://pc.2ch.net/test/read.cgi/unix/1045705000/573-619n
0122デフォルトの名無しさん
NGNG語るスレ3 の >>619 の
> しかし文字列もそうなんだけど、Cプログラマのmatzには
> 文字列の数学的性質に馴染みがなかったから string を
> mutable にしたんだろう。
は少し的外れじゃなかろうか。
一言で言えば「Perlに合わせた」んじゃ。
つまりは、よく使われる文字列処理においては
(特にFixnumと比べて)オブジェクトの生成による性能低下が
顕著になるから、ということではないでしょうか。
ご存知の方が多いでしょうけど、
PythonやJavaにおける普通のstringはimmutableです。
思想の違い以外にも、想定用途の違いもあると思う。
0123122
NGNGS = 'hoo'
S.gsub!('o', 'e')
p S
# => "hee"
Sが指すのは「文字列『変数』」で、
Stringは「文字列を『保持する』クラス」であるっつー事にもなる。
この理由は>>122と推測。
Integerでこれができると「整数を保持するクラス」になって、
「整数クラス」にならない。これが分かりづらいって話じゃないでしょうか。
0124デフォルトの名無しさん
NGNG突き詰めれば、parse.yで
…
%left '+' '-'
%left '*' '/' '%'
…
となってるからだと思う。
要するに、+ やら * やらは、クラスやメソッド定義の内容に関係なく、
算数における優先順位と同じ順序で評価される、と。
ちなみに
>>114氏はちょっとずれてるような。
その文面だけだと、
「Fixnum#+もメソッドだけど、1.+(2) は 演算子的に 1 + 2 って書けるよ」
っていう部分のみを意味していると思う。
演算子の優先順位はここね。(114氏が引用した文章を含む)
ttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%B1%E9%BB%BB%BB%D2%BC%B0
0125デフォルトの名無しさん
NGNGa = 3.+(5.*(7)); p a
0126デフォルトの名無しさん
NGNGtext processings に重きをおくPerlの経験に習ったのも理由の一つだろうね。
しかし元の文脈は Integer が immutable で String が mutable であることを
説明するであって、Integer には数学的対象としての性格を求め、
String には求めなかったというのもそれ自体は間違っちゃいないと思う。
0127デフォルトの名無しさん
NGNGequal? と == の意味が異なるのは英語として分かりにくい。
0128デフォルトの名無しさん
NGNG"a,b,\"c,\\\"d,e\\\"\""という文字列で表したいのだが
良い方法はないだろうか?
逆は
def csv_spl(str)
buf = (str + ',').scan(/"([^"\\]*(?:\\.[^"\\]*)*)",|([^,]*),/).collect{|x,y| y || x.gsub(/\\(.)/, '\1')}
buf2 = []
if buf == [str]
str
else
buf.each do |c|
buf2.push(csv_spl(c))
end
buf2
end
end
でできるんだけどね(^^;
0130デフォルトの名無しさん
NGNG押してもだめなら引いてみよう。
puts [1,2,[3,[4,5]]].inspect.gsub(/\[|\]/, "\"")
# => "1, 2, "3, "4, 5"""
0131デフォルトの名無しさん
NGNGナイスだとおもいます。
1.9/2.0に向けてなら、提案の価値があると思います。
0133デフォルトの名無しさん
NGNG仕様がいまいち分からんがこういうことか?
def foo(ary, depth = 0)
c = depth.zero? ? '' : "\\"*(depth-1) + '"'
c + ary.map{|i| i.is_a?(Array) ? spl_csv(i,depth+1) : i.to_s }.join(",") + c
end
p foo([1,2,[3,[4,5]]]) #=> "1,2,\"3,\\\"4,5\\\"\""
0134デフォルトの名無しさん
NGNG英語のequalにidenticalの意味ってあるんだっけ?
手元に英英辞書がないから分からん。
0135130
NGNGdef foo(a)
n=0
t=''
s=a.inspect.delete(' ')
s.each_byte do|c|
case c.chr
when '[', ']'
t<<(n==1?'"':n==2?'\"':'')
n+=(c.chr=='[')?1:-1
else
t<<c.chr
end
end
t
end
p foo([1,2,[3,[4,5]]])
#=> "1,2,\"3,\\\"4,5\\\"\""
でも>>133氏の前に完敗です。
0136131
NGNGWebは手元にあるはずです。
ttp://www.m-w.com/
によれば、
1 a (1) : of the same measure, quantity, amount, or number as another
(2) : identical in mathematical value or logical denotation : EQUIVALENT
(snip)
とあります。他の部分にidenticalという単語は見当たらず。
「理論的・数学的にidentical」なのがequalなのでしょう。
Object=ものとしての同一性ならやっぱり、
identical? じゃないでしょうか。
0137デフォルトの名無しさん
NGNGむかしはloveruby.netにあったような覚えがあるんだが。
0138デフォルトの名無しさん
NGNG聞く前に調べる。
http://www.google.co.jp/search?sourceid=navclient&hl=ja&q=Ruby+%E6%9C%80%E9%81%A9%E5%8C%96
0139デフォルトの名無しさん
NGNGうちの環境だと
3:in `foo': undefined method `spl_csv' for #<Object:0x2859618> (NameError)
っておこられるのだが、spl_csvってどっかの拡張メゾットか?
0140139
NGNGの誤りです
0141デフォルトの名無しさん
NGNGさんきゅう
最適化という言葉が浮かばなかった
0143デフォルトの名無しさん
NGNGぐぐってみたけど見つからんかった。
0144デフォルトの名無しさん
NGNG>133は再帰のつもりだった。spl_csv を foo に書き換えて。
0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNGというひとの数 →
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNGC的に書く。
例:文字列の操作
× str = str.sub(/a/, 'A')
○ cc = 'a'; str.split(//).each {|c| if c == cc then cc = nil; 'A' else c; end}.join
0154デフォルトの名無しさん
NGNGstr = "banana"
tmp = str.dup;
for i in 0..(str.size-1)
if (str[i] == ?a) then
tmp[i] = ?A;
break;
end;
end;
str = tmp;
printf("%s\n", str);
0155デフォルトの名無しさん
NGNGすくなくともRubyではこう
× str.split(//).each { ...
○ str.scan(/./).each { ...
手元では、
i686-linux な CVS HEAD では 13%
i686-cygwin な preview3 では 72%
scanの方が速い
jcodeのString#each_charでもそうしてたはず
# CVS HEADのバイナリはデバッグ用に-O0なため
# 一般的なUnix系での実際の数値はcygwinの物に近いはず
0156デフォルトの名無しさん
NGNG> scanの方が速い
ならsplitを使うべきなのでは?
0157デフォルトの名無しさん
NGNG0158155
NGNG0159デフォルトの名無しさん
NGNG勉強になった。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGライセンス的に不都合が無いか調べています。
LICENSE.txtの第3項で質問があるのですが、
> (a) バイナリを受け取った人がソースを入手できるように,
> ソースの入手法を明示する.
これは、組み込んだソフト全体のソースコードを公開せよ、ということですよね。
> (b) 機械可読なソースコードを添付する.
これは、どういうことなのでしょうか?
結局はコンパイル可能なソースコードを付けろ、ということですか?
自分の解釈では、商用向けには向かないと考えていますが、
実際のところどうなのでしょうか
0162デフォルトの名無しさん
NGNG作者にメール!
そういうのは、後の人のためにもメーリングリストで聞くべきでは?
0163デフォルトの名無しさん
NGNGMastering Regular Expressions を読むのが吉
ttp://regex.info/
ttp://www.oreilly.co.jp/BOOK/regex2/
0164デフォルトの名無しさん
NGNG情報ありがとう!
0165デフォルトの名無しさん
NGNG> LICENSE.txtの第3項で質問があるのですが、
LICENSE.txtじゃなくてCOPYING.ja?
3. 以下の条件のいずれかを満たす時に本プログラムをコンパイ
ルしたオブジェクトコードや実行形式でも配布できます.
本プログラムってのはRubyのことだから当然Rubyのソース。
> 自分の解釈では、商用向けには向かないと考えていますが、
> 実際のところどうなのでしょうか
Ruby's Licenseは商用でも問題はないはず。
実際アプリケーション組込み用途に使ってるのは何人かいる。
# なぜか海外が多いような。
0166山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0167デフォルトの名無しさん
NGNG3. 以下の条件のいずれかを満たす時に本プログラムをコンパイ
ルしたオブジェクトコードや実行形式でも配布できます.
の
(a) バイナリを受け取った人がソースを入手できるように,
ソースの入手法を明示する.
(b) 機械可読なソースコードを添付する.
は呑めないのだろうけど
(c) 変更を行ったバイナリは名前を変更したうえ,オリジナ
ルのソースコードの入手法を明示する.
でOKになるのでは。
ここの「オリジナルのソースコード」がruby-1.6.8.tar.gzなりなんなりに
なるのだろうから、
「XXはRubyを組み込んでます。Ruby1.6.8はこちらから入手できます。」
と書けば平気なんじゃなかろうか。という素人の考察。
最も、GNUがオリジナルArtisticライセンスを「非フリーウェアライセンス」
とする理由は「あまりにも曖昧過ぎる」「意味も不明瞭」という点にあるから、
Artistic-likeといわれるRubyのCOPYING.jaの意味をruby-listで
明確にするのも、悪い選択じゃない気がする。
ttp://www.gnu.org/licenses/license-list.ja.html#ArtisticLicense
(現状のRubyライセンスがGPLとのデュアルである理由の一つも、
COPYING.jaのみではGNU的には非フリーウェア⇒非GPLコンパチだから、だそうで。)
あ、ちゃんと過去ログ読んでからにしろよ。
0168167
NGNG本当に「改変前のオリジナルRuby」という係り方なのだろうか。
original=「原型の」だからひょっとしたら、
「バイナリに対する原型のソースコード」
ってことになったり。
んーよく分からんっす…
0169デフォルトの名無しさん
NGNG以前のruby-listでの議論は不毛だったので、
>あ、ちゃんと過去ログ読んでからにしろよ。
読まなくていいです。
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG商用ソフトに使うのはなんら問題ないでしょ。
0172デフォルトの名無しさん
NGNGしゃしゃり出てきてうざくなる罠。
0173デフォルトの名無しさん
NGNGしゃしゃり出てきたところでそのままMorpyOne関係者に引き渡そう。
0174161
NGNG> 3. 以下の条件のいずれかを満たす時に本プログラムをコンパイ
> ルしたオブジェクトコードや実行形式でも配布できます.
*いずれか* なんですね。すっかり、見落としていました。
今回の場合は、(c)のケースで問題なく使えそうです。
自分はクローズドソースにするつもりはなくても、
そうせざるを得ない場合がほとんどなのです。
そんなわけで、こういうライセンスは非常に助かります。
0175デフォルトの名無しさん
NGNG>>70 >>74 >>75 にも注意。
0176デフォルトの名無しさん
NGNG一番の解決策は、非LGPLな正規表現ライブラリである
鬼車(onig...)をregex.[ch]の代わりに使うこと。
FTPのcontrib以下にもあるし、CVSで取って来てもいい。
将来のRubyでは標準で使われる予定のものなので、
すぐにregex.[ch]から乗り換えられるように
現状のRubyとのすり合わせも行われてるっぽいし、
ライセンス問題の解決策としては一番妥当かと。
0177デフォルトの名無しさん
NGNGたまーに既存のと動作が微妙に違うことがあるが。
0178176
NGNG物にもよるだろうけど、過去に議論されてなくてかつ
影響がそこそこありそうなどの場合、
良い子はMLかkosako氏にメールしませう。
0179デフォルトの名無しさん
NGNGあるいは、regex.[ch]を単独の共有ライブラリに分けるとか。
つーかlibrubyごとアプリケーションから分離しておけば、
LGPLには影響されないんじゃないか?
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNG違う。
0182176
NGNGそっかそっか、ていうか基本的なとこ忘れてたよ。
「L」GPLじゃん。てことはlibrubyがLGPLの下に置かれたバイナリと
しても、プロプライエタリ(商用)ソフト側と別バイナリにして
librubyをリンクだけする形にすれば、プロプライエタリ側のソースは
LGPLにはなんら影響されない、ってことだよね。
ソースレベルで直にregex.[ch]を丸呑みしなければいいだけの話か。
# 勘違いしてたら突っ込んでくれ、だれか…
0183デフォルトの名無しさん
NGNGども。名前でそうかと思っちゃってた。
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGみんなにいじくり回されてます。
0186デフォルトの名無しさん
NGNGカーソルキーを押したときに^[[A ^[[B ^[[C ^[[Dと表示されてしまい
うまくつかえません。
また、Ctrl+Pなども^Pと表示されてしまいます。
もちろん、他のviやシェルやemacsなどでは正常にカーソルキーも
コントールキーも使えます。
Terminal,JTerminal + bash,tcsh,zshなどの組み合わせも試しましたが
全部ダメでした。
どなたか解決方法ご存じの方いらっしゃらないでしょうか?
irb 0.7.4
ruby 1.6.7
0187デフォルトの名無しさん
NGNGreadline.soがないんでは?
0188186
NGNGreadline.soが無かったので、
finkのOSXデフォルトじゃないrubyを落としてきたところ
finkのrubyのほうもreadline.soは無かったのですが、
正常に動作するようになりました。
どうもありがとうございます。
0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNGみたいな文字列を日本語に変換するにはどうすればいいのでしょうか?
0192デフォルトの名無しさん
NGNG0193191
NGNGevalでやろうにもやり方の見当が・・・
0194デフォルトの名無しさん
NGNGこんなんじゃダメ?
require 'uri'
$KCODE = 's'
str = '\x95\x5c\x94\x5c'
p URI.decode(str.gsub(/\\x/, '%'))
0195デフォルトの名無しさん
NGNGstr = '\x95\x5c\x94\5c'
puts str.scan(/[0-9A-Fa-f]+/).collect{|x| x.hex}.pack('C*')
0196194
NGNGやっぱり、初心者の考え付くことはこの程度だな(w
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG3倍は違わんでしょ
1.8で10**6回ずつ実行させてtimeで計ると eval:pack:decode=1:2:4.6 ってとこだった
time ruby -ruri -Kse 's="\\x95\\x5c\\x94\\x5c"; 1000000.times{eval("%(#{s})")}'
time ruby -ruri -Kse 's="\\x95\\x5c\\x94\\x5c"; 1000000.times{s.scan(/[0-9A-Fa-f]+/).collect{|x| x.hex}.pack("C*")}'
time ruby -ruri -Kse 's="\\x95\\x5c\\x94\\x5c"; 1000000.times{URI.decode(s.gsub(/\\x/,"%"))}'
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG0202191
NGNGやり方一つとっても何通りもあるんですね。
非常に参考になりました。
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNGいったいいつのマシンを使ってるんだ。
あ、もしかして require の後に毎回 GC するせいかな?
1.8 を使うか、ファイルの数を減らしてみたらどうよ。
1.8 でも bison を使ってビルドしないと GC の回数は
減らないけどね。
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG> みねたん
ぼやいてたね(w
0207デフォルトの名無しさん
NGNGあるふぁの後ろの本の山がすごっ
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG難しいらしい
0211デフォルトの名無しさん
NGNG文字列をUTF8にエンコするのに、何使えばいい?
uconvのcygwinバイナリ捜したんだけど、なくってさ。
0212無料動画直リン
NGNG0213デフォルトの名無しさん
NGNGこれじゃだめなのか
0214211
NGNGmakeの途中で止まっちまうんすよ。
バイナリないっすかね。
もしくはPure Ruby なモヂュール。
ruby 1.6.5 (2001-09-19) [i386-cygwin]
でつ。
0215デフォルトの名無しさん
NGNGroughのunkfもmake出来ない?
0216211
NGNGCVSwebの使い方がワカラン・・・
すまん。
0217デフォルトの名無しさん
NGNGhttp://ftp.ruby-lang.org/pub/ruby/binaries/cygwin/ext/ にある
uconv-0.4.10-i386-cygwin.tar.gzは使えないの?
pure Rubyならrbuconvというのがある。
http://www.yoshidam.net/diary/200305.html#15_t2
0218211
NGNGやってみす。
0219211
NGNGgcc -DUSEIMPORTLIB -Os -DRB16 -DUTF8_SUPPORT -DUSE_JUDGE_JCODE -I/usr/local/li
b/ruby/1.6/i386-cygwin -I. -I/usr/local/cygwin-local/include -I/usr/local/cyg
win-local/include -c -o unkf.o unkf.c
dllwrap --target=cygwin --as=as --dlltool-name=dlltool --driver-name=gcc --expor
t-all -s --def=unkf.def -L/usr/local/cygwin-local/lib -L/usr/local/lib -o unkf.
so unkf.o -L. -lcygwin-ruby16
/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-5/../../../../i686-pc-cygwin/bin/ld: cann
ot find -lcygwin-ruby16
collect2: ld returned 1 exit status
dllwrap: gcc exited with status 1
make: *** [unkf.so] Error 1
ぐは。
-lcygwin-ruby16てなんですか?
>>217
やってみます。
0220211
NGNG今頃
http://ftp.ruby-lang.org/
の存在を知った。
217さんありがとうございました。
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNGstr = Uconv.euctou8("夏目 漱石")
print str
とすると、"紊 羲援"こんな感じに文字化けします。XML文書中に
含ませるためにはどのような処理をしなければならないのでしょうか。
御面倒ですが、アドバイスをお願い致します。
0223デフォルトの名無しさん
NGNGprint str の結果を、(utf-8 を理解しない)端末にたれ流してるんだったら、
そんな風に見えるのが当たり前のような。
0224デフォルトの名無しさん
NGNGありがとうございます。御指摘のとおり、ktermで見てるのでダ
メなんですね。
実は、amazon.comのWEBサービスをテストして、日本語をutf-8に
しようとしています。
実際には、utf-8をASCIIコードにすればよいのでしょうか。
(初心者で、全くオッペケペな事を言っているような気がし
ます。申し訳ないです。。)
ttp://xml.amazon.com/onca/xml3?t=myWebsite-23&dev-t=GTYDRES564THU&KeywordSearch=dogs&mode=books-jp&type=lite&page=1&f=xml&locale=jp
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG自分としては、下の例での「E4B887」がほしいんです。
「万」==>unicode:4E07
「万」==>utf-8:E4B887
----
str1 = "万"
str2 = Uconv.euctou8(str1)
print str2 <-これじゃダメです。
0227デフォルトの名無しさん
NGNG☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
★☆
☆★ 送料激安!! 送料激安!! 送料激安!!
★☆ http://www.get-dvd.com
☆★ 激安アダルトDVDショップ
★☆ お買い得セール1枚500円〜980円!急げ!
☆★ インターネット初!「きたぐに割引」
★☆ 北海道・東北の皆様は送料も激安!
☆★ http://www.get-dvd.com
★☆ スピード発送!
☆★ http://www.get-dvd.com
★☆ 商品が豊富!
☆★ http://www.get-dvd.com
★☆
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
0228デフォルトの名無しさん
NGNGインストーラは、何を使うべきですか?
0229228
NGNGrubyで書いたスクリプトのインストールには、どのような
インストール方法を用いるのが一般的でしょうか?
0230デフォルトの名無しさん
NGNGだからあ、表示できないのは端末の問題でしょ。
何が欲しいのか分からんが、下を実行して出来る foo.html を mozilla か IE で見れ。
require "uconv"
str1 = "\260\354\275\275\311\264\300\351\313\374"
str2 = Uconv.euctou8(str1)
open("foo.html", "wb").print(<<EOS)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>utf-8</title>
</head>
<body>
<h1>#{str2}</h1>
<p>#{str2.unpack("H*")[0]}</p>
</body></html>
EOS
0231デフォルトの名無しさん
NGNG一般的かどうか知らんが
漏れはふつーに autoconf/automake でつ
0232デフォルトの名無しさん
NGNG標準となってるような方法は *ない*
一般的なのは
* >>231 みたいに autoconf/automake
* 自作スクリプト
* 手でコピってね ♥
など……だと思うけど、もしかしたら install.rb / setup.rb がよく使われ
てるのかもしんない。ぐぐってみて。
0233デフォルトの名無しさん
NGNGありがとうございます。
欲しかったのは、string.unpack("H*")です。
「16進文字列でアンパックした要素の列」(google)ということだったのかな?
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNGpopen するにはどうしたらいいのでしょうか?
0236デフォルトの名無しさん
NGNG質問の意味がよくわからないのですが、 Open3 が参考になりますか?
0237デフォルトの名無しさん
NGNG/^Giko:/i
0239デフォルトの名無しさん
NGNGcommand > /dev/nullでいいと思いますが。
0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNGGiko:が行頭にあるi???
0242デフォルトの名無しさん
NGNGgiko:
gikO:
giKo:
giKO:
gIko:
gIkO:
gIKo:
gIKO:
Giko:
GikO:
GiKo:
GiKO:
GIko:
GIkO:
GIKo:
GIKO:
0243235
NGNGopen3 は見てもよく分かりませんでした。
>>239
ありゃ、そんな単純なので ok だったんですね。
stderr も捨てるのは >/dev/null 2>&1 でいけました。
みなさんありがとう。
0244196
NGNGコンソールで、文字の色を変えたり、同じ行を書き換えたりするにはどうすればいいでしょうか。
どなたかよろしくお願いします。
0246デフォルトの名無しさん
NGNGRubyと関係ねーだろ
0247デフォルトの名無しさん
NGNG0248244
NGNGすれ違いすいませんでした。
Rubyで試したらうまくいかなかったので、Rubyのせいにしてしまいました。
Cでもダメでした。じゃぁ、XPのコンソールが悪いのか。
適切なスレを探してみます。ご迷惑をおかけしました。
0249デフォルトの名無しさん
NGNGdevice=%SystemRoot%\system32\ansi.sys
dosonly
を追加したらANSIのエスケープシーケンスが使えるんでない?
0251244
NGNGMSYSのrxvt上で実行することで、エスケープシーケンスが解釈されました。
お騒がせしました。
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNGshim まだぁ?
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGruby-1.8.0-preview4
http://www.ruby-lang.org/ja/20030724.html
ちょっとメモ
= 1.6.8 -> 1.8.0 追加されたバンドルライブラリ
== lib 配下
・benchmark : ベンチマーク
・csv : CSV データのパースと生成
・date::format : 日付<->文字列変換ユーティリティ
・drb : 分散Ruby
・erb : Tiny eRuby プロセッサ
・fileutils : ファイル操作ユーティリティ
・ipaddr : IP アドレス操作の低レベル API
・open-uri : net/http と net/ftp を簡単に使うためのラッパ
・pathname : オブジェクト指向なパス名操作
・pp / prettyprint : preetty printer と pretty print ライブラリ
・profiler : profile をライブラリ化したもの
・racc : コンパイラコンパイラ
・rexml : XML parser
・rubyunit / runit: unit/test による RubyUnit 互換ライブラリ
・scanf : scanf(3) の Ruby 実装
・set : 集合(コレクション API)
・unit::test : ユニットテスト
・tmpdir : tmpfile のディレクトリ版
・webrick : Web サーバフレームワーク
・xmlrpc : XML-RPC API
・yaml : yaml 文書の操作
0256デフォルトの名無しさん
NGNG== ext 配下
・bigdecimal : 任意桁数の小数点演算
・dl : ダイナミックリンカへのインタフェース
・iconv : I18N 文字列変換
・io/wait : ノンブロックな wait
・openssl : openssl ラッパ
・stringio : IO みたいに使える String
・strscan : 高速文字列スキャナ
・syck : YAML 読み書きライブラリのラッパ yaml で使用
・zlib : zlib を使った gzip データ操作
0257255
NGNG7/28 preview5 → preview6 ? → 7/30-/7/31 正式リリース予定?
今月中にリリースするつもりなのかな?
0258デフォルトの名無しさん
NGNGRubyForge http://rubyforge.org/ 定点観測
総計 8 プロジェクト
・Vapor : JDO をモデルとした PostgreSQL 向けの persistent Object-Repository ライブラリ
・Ruby VGA-Planets Viewer : VGA-Planets というゲーム用のデータビューアらしい
・Ruby Muravey Tools : Ruby ベースでウェブサイト構築するためのキット。まだリリースなし。
・RMagick : ImageMagick へのインタフェイス。便利。
・rGenetic : 遺伝的アルゴリズムを使ったプログラムを作るためのフレームワーク。リリースなし。
・AEditor : ペアプロ用エディタウィジェット。ncursesやQtで使えるようだ。
・Vim/Ruby Configuration Files : vim 用の設定ファイル
・Ruby Live Journal : http://www.livejournal.com/ のクライアント。リリースなし。
0259デフォルトの名無しさん
NGNGruby-dev見始めたの最近なのでサンクス。
0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNGRuby ならではの機能と思っていたものの多くが
Smalltalk のパクリなのに気づいて
こんなんだったら最初から Smalltalk やっときゃよかった
という気持ちでいっぱい。
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNGMac OS Xの次バージョンに入る〆切らしい。
0264デフォルトの名無しさん
NGNGAppleに感謝したいな。
そういう外圧的〆切がなければ、まだまだ当分リリースされなかったに
違いない。
0265デフォルトの名無しさん
NGNGJavaに関してequalsはidenticalならばよかったのに、と触れてあるコラムがあった。
やっぱりそういうことを考える人は多いんだろうか。
0266デフォルトの名無しさん
NGNG(1..16).each do |i|
hash[i].push i
end
p hash #=> {1 => [1], 2 => [2], ..., 16 => [16]}
だったら嬉しいのですが(ver1.6)。
v1.8ではどうなってますか?
0267デフォルトの名無しさん
NGNG同意。バグはいくらでも見つかるもんだから、
適当なとことで踏ん切りをつけないと。。。
>>266
ブロックを指定してやると、ブロックの評価値がデフォルト値になる。
http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=Hash#Hash.2enew_2
0268デフォルトの名無しさん
NGNGhash = Hash.new {[]}
(1..16).each do |i|
hash[i] <<= i
end
または
hash = Hash.new {|h,k|h[k]=[]}
(1..16).each do |i|
hash[i].push i
end
後者は、存在しないキーにアクセスしただけで追加されてしまうという、
副作用があるけど。
0269デフォルトの名無しさん
NGNGできるんですかね?
0270デフォルトの名無しさん
NGNGみなして "(_x)\n_x1,1_x,(_x),_x_x:(_x)\n(_x)" に置換する方法を教えてください。
ただし、文字列全体を置き換えるのは、なしです。
0271デフォルトの名無しさん
NGNG置換された結果として何を望んでいるのかが分からない。
その方法を foo(str) として
_x = "X"
str = "_x\n_x1,1_x,_x,_x_x:_x\n_x"
p foo(str)
の出力には何を期待しているのか?
0272デフォルトの名無しさん
NGNGこゆこと?
"_x\n_x1,1_x,_x,_x_x:_x\n_x".gsub(/\b(_x)\b/) { "(#{$1})" }
0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNGそれは正規表現のオプションで、複数行モードで処理しろってこと。
複数行モードだと正規表現のピリオド(".")が改行にもマッチするようになる。
/.+/は一行にマッチする
/.+/は全行にマッチする
例:
p /.+/.match( <<EOS ).to_s
line 1
line 2
line 3
EOS
p /.+/m.match( <<EOS ).to_s
line 1
line 2
line 3
EOS
0275デフォルトの名無しさん
NGNGは
/.+/mは全行にマッチする
ですよね。
0277270
NGNGそれで置換できるのかー。
Emacs の replace-regexp で \b\(_x\)\b を (\1) に
置換するとなぜか "_x\n_x1,1(_x),_x,_x(_x):_x\n(_x)" に
なってしまって、Rubyも同じだと思ってた。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNGぐぐった程度ではみつからなかったんだが
安定なsortってない?
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNGやっぱ書くか。
つか、rubyのmlで3年前に話がでてるが結局だれも
しなかったのな。
0283デフォルトの名無しさん
NGNG1.8ならEnumerable#sort_byが使える。
http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=Enumerable#sort_by
0284デフォルトの名無しさん
NGNG1.6 なら大人しく Schwartzian Transform しとけ。
0285デフォルトの名無しさん
NGNGttp://www.google.com/search?q=%E5%AE%89%E5%AE%9A+%E3%82%BD%E3%83%BC%E3%83%88&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8
知らんかった
もうリリースされるんなら1.8に移行してもいいような気が。
それとも1.8が出たら1.8.1待ちになる罠なのか?
0286デフォルトの名無しさん
NGNGdef sort_stable!(&b)
each_with_index{|x| self[x.last] = x}
sort!(&b) && each_with_index{|e,i| self[i] = e.first}
end
def sort_stable(&b)
a = dup
a.sort_stable!(&b)
a
end
end
a = %w(a b a b a)
u, s = a.sort, a.sort_stable
for i in [a, s, u]
p [i, i.map{|i| i.id}]
end
0287デフォルトの名無しさん
NGNG下のコードは最新だとエラーなしで通る?
def a; *(0..2); end; p a #=> parse error
0288デフォルトの名無しさん
NGNG% ruby -ve '
> def a
> *(0..2)
> end
> p a
> '
ruby 1.8.0 (2003-07-29) [i686-linux]
-e:3: parse error
-e:6: parse error
0289デフォルトの名無しさん
NGNGそれはどう動く (動いて欲しい) コードなの?
0290デフォルトの名無しさん
NGNGdef a
(0..2).to_a
end
p a #=> [0, 1, 2]
こういうことか?
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG> 較結果が同じ要素に対して、元の順序を保持しないことを「安定ではない」と
> 言います)、sort_by を使って以下のようにすることで stable sort を実現で
> きます。
>
> i = 0
> ary.sort_by {|v| [v, i += 1]}
0293287
NGNGなんだ、ダメじゃん。
まぁ、何かの理由で *(0..2) という表記は戻り値として使えないから
>>290のように to_a にしとけということかな。
とはいえ、下のように return を付けるとエラーにならないのが謎。
def a; return *(0..2); end; p a #=> [0,1,2]
0294デフォルトの名無しさん
NGNGruby 1.8.0 (2003-07-28) [i386-cygwin]
-e:1: syntax error
0295デフォルトの名無しさん
NGNG引数とそうでないものは違う。
$ ruby -ce 'foo a,b'
Syntax OK
$ ruby -ce 'a,b'
-e:1: parse error
0296デフォルトの名無しさん
NGNGで、それがエラーになると何かまずいことでもあるの?
0297デフォルトの名無しさん
NGNG0298287
NGNG普通にreturnの「引数」だから *(0..2) と書けるわけか。
0299デフォルトの名無しさん
NGNG>>287 みたいなキチガイはほっとけ。
0300デフォルトの名無しさん
NGNGようするに286みたいにeach_with_indexと併用ってことじゃない?
0301デフォルトの名無しさん
NGNGopenssl_missing.c でエラーになるなあ (1.8.0 preview5)。
OpenSSL 入れろってこと?
0302デフォルトの名無しさん
NGNGCVS上ではもう直ってる。
0304デフォルトの名無しさん
NGNGstr='表'
if str =~ /表/ then
puts 'OK'
end
↑これマッチしないの、なんでだろ〜?
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNGstr='表'
if str =~ /表/ then
puts str
end
ごめんなさい
0307デフォルトの名無しさん
NGNG#!/usr/bin/ruby
$KCODE='SJIS'
str='表'
if str =~ /表/ then
puts str
end
はだめです。どうしてですか?
0308デフォルトの名無しさん
NGNGリファレンスマニュアル FAQ 10.2 「オプション-K と $KCODE の違いはなんですか?」を参照。l
0309デフォルトの名無しさん
NGNGそのまんまの答えですね。
調べずに書き込みしてごめんなさい。
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNG8/1にpreview7、8/4に正式リリース。
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNGしてる。matz日記参照。
ただ、freeze後もいくつか変更がはいった。
0315デフォルトの名無しさん
NGNG情報をよく集めているデベロッパだけfeature freezeされて、空気読まない連中は
feature freezeされない罠。
やっぱりリリースエンジニアリングが(ry
0316山崎 渉
NGNG0317デフォルトの名無しさん
NGNG俺は使ったことないのでわからんが。
0318デフォルトの名無しさん
NGNGttp://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/ext/bigdecimal/bigdecimal_ja.html?rev=HEAD
読んでみる?
0319デフォルトの名無しさん
NGNGRuby/tk? Apollo?
0320デフォルトの名無しさん
NGNGRuby/GTK2
0321デフォルトの名無しさん
NGNGVisualuRuby
0322デフォルトの名無しさん
NGNGこっそり wxruby に期待
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNGRuby/GTK
↑
この単語間のスラッシュは何?
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG斬新な質問だな。
0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNGあたかもcall with current continuationがCall/CCになるように。
0336デフォルトの名無しさん
NGNG両者にパフォーマンス等でトレードオフがあれば教えて下さい。
0337デフォルトの名無しさん
NGNG一番納得する方法だよ。
なんでもかんでも人に聞いちゃいかんよ。
0338デフォルトの名無しさん
NGNGそーか。「×× with 〜」または「×× using 〜」とも解釈できるな。
あと、分数棒として読めば「×× over 〜」になる。
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNGclass C < SimpleDelegator
def initialize
super("A")
end
end
Marshal.dump(C.new)
> `dump': singleton can't be dumped (TypeError)
なぜ?
0346デフォルトの名無しさん
NGNGdump して load したら dup したことになるからでは。
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNGスレタイや板とは無関係に。
0350デフォルトの名無しさん
NGNGこことUNIX板以外にもあるの?
0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNGヌルポ rescue ガッ
だろう。
0354デフォルトの名無しさん
NGNGつのだ/ひろ
0355デフォルトの名無しさん
NGNG349じゃないけど私が知っている現行スレ(駄スレを除く)は4本です。
これ以外のスレを知っていれば教えてください。
rubyを語るスレッド 3
http://pc.2ch.net/test/read.cgi/unix/1045705000/
Ruby について Part 4
http://pc2.2ch.net/test/read.cgi/tech/1056944114/
Rubyの実装に疑問あり!
http://pc2.2ch.net/test/read.cgi/tech/1004873294/
【Ruby】RubyでCGI
http://pc2.2ch.net/test/read.cgi/php/988948655/
0356デフォルトの名無しさん
NGNG> Rubyの実装に疑問あり!
> http://pc2.2ch.net/test/read.cgi/tech/1004873294/
これはもう駄スレじゃん?
0357デフォルトの名無しさん
NGNGhttp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.0-i386-mswin32.zip
ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.0-i386-mswin32.zip
ruby 1.8.0 (2003-08-04) [i386-mswin32]
md5sum : eaf9263062429fd4f722d9a70a38a9dc
>>355
スレの頭の部分はタイトルどおりに内部構造の話をしているので一応入れました。
確かに今は個人叩きスレになっていますね。もったいなーい。
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNG$_.sub!(/\:\d+\:/, "(#{$2}):")
end
をsub一回に書き換えられませんか?
ifのチェックをしないとsubの行の$2に値がセットされません。
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNGじゃダメ?
0362デフォルトの名無しさん
NGNGなにか表現がおかしいけど気にしない。
0363デフォルトの名無しさん
NGNGirb.bat実行するとreadline.dllが無いって怒られるんですが、
何処から拾ってくるの?
0365デフォルトの名無しさん
NGNG肝心のdllがどこにも見当たらないんですが・・・
0366デフォルトの名無しさん
NGNGMinGW pre7 のやつ使ってるけど大丈夫ぽい
0367デフォルトの名無しさん
NGNGNameError: uninitialized constant Irbsh とエラー出て
まったく動作しませんが、何か?
0368デフォルトの名無しさん
NGNGttp://jarp.jin.gr.jp/win32/ とか。
0369デフォルトの名無しさん
NGNGそれでokでした。
ありがとう。
0370デフォルトの名無しさん
NGNGここのアッカーマンが実行できませんでした。
http://www.bagley.org/~doug/shootout/bench/ackermann/ackermann.ruby
irb(main):012:0* ack(3, 8)
SystemStackError: stack level too deep
from (irb):4:in `ack'
from (irb):6:in `ack'
〜〜〜〜略〜〜〜〜〜
from (irb):8:in `ack'
from (irb):12irb(main):013:0>
何ででしょう?
0371デフォルトの名無しさん
NGNGスタックが足りないから。
0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNGクライアント(UNIX系OS)のディレクトリ構造をWEBに吐き出させようと
したらどうしたらええでしょうか??
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNG#!/usr/local/bin/ruby
# 今このファイルを実行したクライアントのディレクトリ構造
# を出力する
みたいな処理はできないのですか?という意味です。
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNG’クライアントの’が表示したいのです。
0378デフォルトの名無しさん
NGNGというかね、サーバ側がどう頑張っても無理。
0379デフォルトの名無しさん
NGNGそういう大事なことは始めから書いた方がよい返事がもらえますよ。
このやりとりで、論点がすっきりしました。
クライアント/サーバを一から理解しろクズ! 氏ねや夏廚
0380デフォルトの名無しさん
NGNG0381377
NGNGクライアントでディレクトリ構造のデータを取得する
Rubyプログラムを動かしておいて、サーバ側に送るってやるしか
無理なのかなぁ〜?
ActiveXとかを使わないと駄目なのかな?
0383デフォルトの名無しさん
NGNG0384377
NGNGどっちにしてもサーバアプリかクライアントアプリをクライアント
に常駐させておかないと、実現不可能ですかね。。。
0385デフォルトの名無しさん
NGNGクライアント側で情報垂れ流すI/Fがないと無理だと言ってるの。
それにRubyと全く関係ない。
0386デフォルトの名無しさん
NGNGてかcgiにこだわる必要があるのか。単なるsockアプリじゃ駄目なのか。
セキュリティのことはちゃんと考えてるのか。
0387デフォルトの名無しさん
NGNG0388377
NGNGRubyと全く関係ないというのはわかりますが、Rubyでプログラミング
したいと思ってこのスレに書き込みしました。
sockアプリでは駄目で、理由はそのsockアプリを配布して実行
しないといけないからです。
私が真にやりたいことは、ディレクトリリストを表示するだけでなくて
クライアントのあるディレクトリに目的のファイルがあるかどうか
までcgi側から調ることです。そのためには先ずディレクトリリスト
をクライアントから返すようなプログラムをcgi側から送れないか
と思ったのです。(cgiの構造はおおむね理解した上で)
セキュリティのことはこの際考えません。ActiveXのように、悪意
あるコードをクライアント側に流すような処理をするつもりは
ないです。
0389デフォルトの名無しさん
NGNGActiveX知ってるなら、それでやればいいじゃん。
0390377
NGNGActiveXは詳しくないのです。だから、それと似たような機能が
Rubyでできればと。
0392デフォルトの名無しさん
NGNG多分ね、RubyだとCで拡張モジュール作るはめになるよ。
結論としてcgiとしては実現不可能。
ここで粘着しても無駄だから、Web板とか行って。
0393デフォルトの名無しさん
NGNG仕込ませて待機させて遠隔操作するのがよし。
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG関係ないけど、Cで拡張モジュール作れても全然嬉しくないよな。
0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNG速度が速いよ。
0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNGcgiとかで公開できないじゃん。
環境依存だし。
0400デフォルトの名無しさん
NGNG0401377
NGNGWeb板でも聞いてみます、不慣れな書き込みですいません。
Cで拡張モジュール…挑戦したい…具体的にはどのような
拡張モジュールにするべきでしょうか?
>>393
Ruby的にはdrb使うのが目的の処理ができそうですね。(WEBサーバ
仕込ませるのと似ているけれども、こちらのほうが軽く、速く
処理ができそう かつ しこませやすそう)
drbをつかった処理考えてみます。
0402デフォルトの名無しさん
NGNGMLで詳しく教えてやるよ。
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNGhttp://kwatch.tripod.co.jp/ruby/changes180.html
読みにくいかもしれんが、まあ我慢してくれ。
0407デフォルトの名無しさん
NGNG冒頭の訳注内 「語感想」→「ご感想」
to_strの説明「新しいメソッドto_strが...として扱います。」→
「to_str()が定義されているオブジェクトを文字列とみなして取得するようになりました。」
0408デフォルトの名無しさん
NGNG訳注に突っ込んでも仕方ないが、
sprintfの"%p"フォーマットはinspect()による文字列化だぞ。
0409デフォルトの名無しさん
NGNGリファレンスのsub, gsubの項にサンプルコードと備考を追加するのがいいと思います。
0410デフォルトの名無しさん
NGNGgsubの項に既に書いてあるんだが。
0411デフォルトの名無しさん
NGNGあれだけpreview出しておきながら何やってんだか。
メンテナンスリリースとは言わず、さっさと1.8.1きぼん
0412デフォルトの名無しさん
NGNGんまぁぁぁぁああああ!!
まぎゅぃぃいいぬぇえぇぃいいいいいいいいいいいいい!!
しんにゅうするつぼりゅえでえああああさあぁぁあぁぁぁああああ!!!
0413デフォルトの名無しさん
NGNGまあ、叩かれるのは目に見えてるが。
0414デフォルトの名無しさん
NGNGString/Array methods
Returns an instance of receivers class.
レシーバであるインスタンスのクラスを返します。〔訳注:???〕
→
レシーバのクラスのインスタンスを返します。
recievers は reciever's の typo かな?
破壊的メソッドも self を返すという意味だと思うけど違うかな?
0415デフォルトの名無しさん
NGNG「サブクラスのインスタンスのメソッド呼んだら、そのサブクラスのインスタ
ンスが返ってくる」みたいにも取れるかも。
0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNGなってない。
0418デフォルトの名無しさん
NGNGまずは profile とってボトルネック調べれ。
0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNG複数のスレッド間でオブジェクトを共有したいのですが、どうすれば共有できますか?
0422デフォルトの名無しさん
NGNGが構文エラーで上手く行かない。
rx = Regex.new " "
"foo bar".split rx
の意味で動いてくれるとうれしいんだが。
0423デフォルトの名無しさん
NGNG2倍ってことはないと思うが、たしかに1.8 は結構速くなっているよ。
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG\zと\Zが同じ意味になった気がするんですが、
片方しかマッチしない例とか教えてください。
0426デフォルトの名無しさん
NGNGp $1
# => "a\n"
/(.*?)\Z/m =~ "a\n"
p $1
# => "a"
0427デフォルトの名無しさん
NGNGMutex
0428デフォルトの名無しさん
NGNGばかだったもっと簡単に考えなイカン
p /a\z/ =~ "a\n" # => nil
p /a\Z/ =~ "a\n" # => 0
0429425
NGNGどうも、ありがとうございます。
でも、mオプションが出てきて、なんか余計ややこしくなってきた。。
結局、1.6と1.8で $ , \Z が どう変わったのか、
わかりやすく教えてもらえないでしょうか?
0430デフォルトの名無しさん
NGNG感謝
0431デフォルトの名無しさん
NGNG> >>426
> どうも、ありがとうございます。
> でも、mオプションが出てきて、なんか余計ややこしくなってきた。。
>
> 結局、1.6と1.8で $ , \Z が どう変わったのか、
> わかりやすく教えてもらえないでしょうか?
p "\n".gsub(/\z/, "o")
p "\n".gsub(/\Z/, "o")
ruby 1.6.8 (2002-12-24) [i586-linux]
"\no"
"o\n"
ruby 1.8.0 (2003-08-04) [i586-linux]
"\no"
"o\no"
というように、\Z が改行の前と文字列末尾の両方にマッチします。
$ も同じ。perl も同じ。
\z は文字列末尾にしかマッチしません。
文字列末尾に改行がなければ同じです。
0432429
NGNGとてもよくわかりました。
ありがとうございました。
0433429
NGNG1.6から1.8での >>431 に書いてあるような変更って
$の方は理解できますが、\Z の方は、なんか変な感じですね。
"\nが文末にあると、もう一行増えたと考えることにした。"
ということなら、$の変更は理解できます。
しかし、最後に改行がある時、\Zが2箇所でマッチするように変更されたのは、
なんか気持ちわるいですね。
\Zを文末と捉えてはいけなくなった気がします。
本当に特別な表現になったような気がします。
みなさんは、どう思いますか?
0434デフォルトの名無しさん
NGNG使うのが数値、文字列、配列、ハッシュぐらいなら、PHPと比べて
特にうれしいということはないだろう。
Rubyを使ってうれしくなるのは、オブジェクト指向をバリバリ
使うとき。自分でクラスをバシバシ定義するようなプログラムだと
Rubyはとってもうれしい。
フロントエンドはあまり難しいことしないからPHPでもいいけど、
バックエンドで複雑なビジネスロジックを作り込む場合は、
どうしてもクラスを定義することが多いから、Rubyのほうが楽。
そうなると、フロントエンド側もRubyで揃えたくなる。
おいらはそれで全部Rubyにした。
0435デフォルトの名無しさん
NGNG話の発端
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/20104
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/70243
非互換覚悟で他の言語に合わせたんだから
また元に戻すようなことがありませんように。
0436429
NGNG"\nが文末にあると、もう一行増えたと考えることにした。"
これ、おかしいですね。
^が増えた行頭にマッチしませんね。
失礼しました。
1.6の方がわかりやすいな。
まあ、Perlとかに合わせたってことで、歓迎すべきなんでしょうが。。
0437デフォルトの名無しさん
NGNGexerbの1.8.0コアも欲しー
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNGdef var=(var)
@var = var
end
def var
@var
end
end
↑これを簡単に書くための attr_accessor はあるのに、
class C
def self.var=(var)
@var = var
end
def self.var
@var
end
end
↑これを簡単に書くための attr_accessor がないのはなぜ?
0440デフォルトの名無しさん
NGNG> ↑これを簡単に書くための attr_accessor がないのはなぜ?
いらないから。
どうしても attr_accessor で定義したいなら
class C
class <<C
attr_accessor :var
end
end
とか
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGインデントなしでも見やすい言語ってあるんか?
Prolog とか?
0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGhttp://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=changes.1.8.0.ja
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNGもちろん本物のプログラマが使うFORTRAN
0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNG目が慣れてるというのもあるが。
0453デフォルトの名無しさん
NGNG"foo bar".split %r/ /
とか。
>>445
日本語
0454デフォルトの名無しさん
NGNG"foo bar".split(/ /)
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNGそりゃ向いてないよ。
RubyはUNIXで使いましょう。
0457デフォルトの名無しさん
NGNGTk, Gtk2…はきついかも。
0458デフォルトの名無しさん
NGNGHSPでも使ったら?
つーかsageろ
ActiveScriptRubyってなんだ? 初めて聞いた
0459デフォルトの名無しさん
NGNGhttp://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/index.html
winじゃ便利だよな。1.8はいつごろになるんだろ。
0460デフォルトの名無しさん
NGNGWideStudio
これが一番Rubyユーザーに合ってる気がする。
http://www.widestudio.org
0461デフォルトの名無しさん
NGNGActiveScriptRuby いまいちピンと来ないのだがASPが例にあるし
これで元の質問にあるスタンドアローンのGUIアプリが作れるのかな?
サンプルコードどこかで見れないですか?
0462デフォルトの名無しさん
NGNGいままでTk, gtk, Apollo, VisualuRubyと試してきたけど
ちゃんと使えて安定してるのはVisualuRubyだと思った。
それでも1.8.0にちゃんと対応してるとは言えない気がする。
>>460
>WideStudio
うわー ruby bindingあるなんてマジ知らんかった。exerbと一緒に使えるといいな。
>>461
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/
1.8.0版作ってほしー
>GUIアプリ
mingw/cygwin/mswin版のようにvisualurubyつかってもいいし
ASR専用のHTAアプリ作ってもいいやね
0463デフォルトの名無しさん
NGNGprint line if line !~ /var/
end
というプログラムが正常に動作してしまうのだが、
『!~』というのは何のクラスのメソッド?
Stringにはこんなメソッド、ないようだが。
0464デフォルトの名無しさん
NGNG委譲
0465デフォルトの名無しさん
NGNG??? HTAとやらを初めて見てビックリ!
HTMLでGUIアプリをコーディングしてるんですね?
なんじゃこりゃ?
EXEに出来れば面白いかもしれない。
0466デフォルトの名無しさん
NGNGWin環境だけであれば、これが一番お勧め
0467デフォルトの名無しさん
NGNGA = 1
@a = 2
def self.a
[A, @a]
end
end
class C2 < C1
A = 3
@a = 4
end
p C1.a #=> [1, 2]
p C2.a #=> [1, 4]
a が C2::A を見ていないのはなぜ?
0468デフォルトの名無しさん
NGNG定数のスコープが静的に決まるからじゃないかなあ
class C1
A = 1
@a = 2
def self.a
[self::A, @a]
end
end
class C2 < C1
A = 3
@a = 4
end
p C1.a #=> [1, 2]
p C2.a #=> [3, 4]
0469デフォルトの名無しさん
NGNG0470デフォルトの名無しさん
NGNGhttp://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=String
での String#=~ の説明では、!~ について特に言及してないのだが。
マニュアルで !~ について言及してあるところはある?
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNGttp://ponx.s5.xrea.com/bibo/20030807.html#p02
挑戦してみる気があるなら。
0473デフォルトの名無しさん
NGNGhttp://minoru_god.tripod.co.jp/
めっちゃかこええ僕の自己紹介(^‥^)
http://minoru_god.tripod.co.jp/profile.html
0474デフォルトの名無しさん
NGNGOSXにTclTk(8.4.2)をインストール(バイナリ版)しOSX10.2に最初からインストールされている
Rubyでrequire "tk"をすると下記のようなエラーとなってしまいます。
ソースから再コンパイルしないといけないのでしょうか?
[Macintosh:〜] % which wish
/usr/bin/wish
/usr/lib/ruby/1.6/tk.rb:7:in `require': No such file to load -- tcltklib (LoadError)
from /usr/lib/ruby/1.6/tk.rb:7
from .//test.rb:3:in `require'
from .//test.rb:3
0475デフォルトの名無しさん
NGNG> OSXにTclTk(8.4.2)をインストール(バイナリ版)し
ってことはTcl/Tkは標準じゃないわけ?
たぶん、tcltklibなしでコンパイルされてるんじゃないの。
OSX添付のrubyは、digest/md5あたりでも問題を聞くし、あまりうまくないのかも。
> ソースから再コンパイルしないといけないのでしょうか?
1.8も(一応)出たことだし、それをすすめる。
0476デフォルトの名無しさん
NGNGみつかった。さんきゅ。
そうか、演算子だったのか。
0477デフォルトの名無しさん
NGNGページ頭の検索使っても見つかるYo
0478デフォルトの名無しさん
NGNGkey = []
hash[key] = true
key.push 0
p hash[[]] #=> nil
なんだか、こういう挙動はあまり好きじゃないな。
たまに嵌る。
0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNG文字列以外は普通 freeze するべ。
文字列がキーのときは勝手にそうなってるだけだし。
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNGいきてーよ。
くそー。のんびりしてたら満席御礼だったよ。鬱だ。
0484デフォルトの名無しさん
NGNGそれ日本語ですか?
0485デフォルトの名無しさん
NGNGあなた日本人ですか?
0486デフォルトの名無しさん
NGNGこれは変だろ。
0487デフォルトの名無しさん
NGNGスクリプト:
--------------------
str = "AAA\nBBB\nCCC"
str.scan(/(^.*$)/) do
p $1
end
--------------------
実行結果:
"AAA" ← "AAA\n" であってほしい
"BBB" ← "BBB\n" であってほしい
"CCC"
このとき、"AAA"ではなく"AAA\n"、"BBB"ではなく"BBB\n"であってほしいのですが
そんなことは可能でしょうか。
0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNGstr = "AAA\nBBB\nCCC"
str.scan(/(^.*(?:\n|\z))/) do
p $1
end
0490デフォルトの名無しさん
NGNG助けてー。助太刀頼む。
----------
830 名前:仕様書無しさん[sage] 投稿日:03/08/09 15:11
いまだにC++なんて低水準言語つかって時間を無駄に使っているのですか?
やはりPyやRなど高水準言語で効率よくコーディングしようよ
831 名前:仕様書無しさん[sage] 投稿日:03/08/09 15:18
VBもPyもRもガキのおもちゃに過ぎん。
http://pc.2ch.net/test/read.cgi/prog/1036581754/
391 名前:デフォルトの名無しさん[sage] 投稿日:03/08/09 19:13
「Py」はPythonのことで「R」とはRoboCodeのことだよね?
http://pc2.2ch.net/test/read.cgi/tech/1053955472/
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNGcvssucc("1,2,a,4", 3) = "1,2,a,5"
という関数はどう実装すればいいですか?
数値や文字列問わずというのはできるのですが。
0493デフォルトの名無しさん
NGNGdef cvssucc(s, idx)
s = s.split(',')
s[idx].succ!
s.join(',')
end
0494デフォルトの名無しさん
NGNGどうでもいいけどcsvsuccだよな。
0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNGあえてインデントは気にしないよ
もちろん「詳説〜」からのコピペだ。
def csvsucc(csv, index)
ary = []
csv.scan(/\G(?: ^|,)
(?:
" ( (?> [^"]* ) (?> "" [^"]* )* ) "
| ( [^",]*)
)/x) {|qval,val|
if qval
val = qval.gsub(/""/,'"')
end
ary.push val
}
ary[index].succ!
ary
end
p csvsucc('1,2,"a,b",4', 3)
0498デフォルトの名無しさん
NGNGははあ、なるほど、$ を使わなければいいのか。
というか、今回の場合では $ を使っちゃいけないのか。
了解しました。どうもありがとう。
0499デフォルトの名無しさん
NGNGその例に限って言えば、これで良い気もするが。
str.each_line do |line|
p line
end
0500500
NGNG0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG>>255を見ると、1.8.0(preview4)から標準らすぃ
0503デフォルトの名無しさん
NGNGa[0] << "x"
p a #=> [["x"], ["x"], ["x"], ["x"], ["x"], ["x"], ["x"], ["x"], ["x"], ["x"]]
正直、一時間ほどハマりました。
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNGRubyリファレンスマニュアル - trap::Array
http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=trap%3A%3AArray
0506デフォルトの名無しさん
NGNGb = a+2; # a と 2 の和
b = a +2; # a(+2) と解釈される.
b = a + 2; # a と 2 の和
ってあったけど、これ単項+のせいだよね?
単項+ っているの??
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG> ってあったけど、これ単項+のせいだよね?
括弧省略文法のせい
0509デフォルトの名無しさん
NGNG具体例キボン
0510デフォルトの名無しさん
NGNG単項+ が無ければ
空白にかかわらず2項+になるんじゃないの?
0511デフォルトの名無しさん
NGNG単項−はいるから何も解決しない
0512509
NGNG単項+ ってそのものを返すだけじゃないの?
だったらいらないと思うんだけどな。
0513ruby
NGNG0515デフォルトの名無しさん
NGNG括弧の含まれる文字列の扱いに困っています。
たとえば、こういった場合です。
str = "abc(inside)"
if "\(.*\)" =~ /#{str}/
この結果がfalseになります。仕様なのでしょうが、困っています。
同じ理由で、gsubなどの変換関数も使えません。
回避策はないでしょうか。
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNGstr.gsub!(/\(.*\)/, '')
をしたいときはどうすればよいですか?
0518デフォルトの名無しさん
NGNG何したいんだよ。
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNGおまえ生意気だな
0521デフォルトの名無しさん
NGNGごめんなさい
もうしわけありません
0522520
NGNG0523デフォルトの名無しさん
NGNGほんとにすまんかった
0524ruby
NGNG0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNG正直すまんかった。
0527デフォルトの名無しさん
NGNGすまんかった
0528デフォルトの名無しさん
NGNGすまんかった。
0529デフォルトの名無しさん
NGNGお前が悪い
0530デフォルトの名無しさん
NGNG助けてくれ。
0531デフォルトの名無しさん
NGNGp a.sort{|a,b|a.upcase <=> b.upcase or a <=> b} #=> ["A", "a", "b", "B", "C"]
sort の中身が前半が 0 であっても
or から後ろが評価されていないようなのだけど
これでいいんだっけ?
ruby 1.8.0 (2003-08-04) [i386-mswin32]
0532デフォルトの名無しさん
NGNGNumeric#nonzero? を使って
a.sort{|a,b|(a.upcase <=> b.upcase).nonzero? or a <=> b}
とやるのかな。
0533531
NGNGでもそれだと、最初の条件でソートされなくならないですか?
0534531
NGNGどんな仕組みになっているんだろ……。
HELP読んでくる。
0535デフォルトの名無しさん
NGNGNumeric#nonzero?
--- nonzero?
ゼロの時nilを返し、非ゼロの時 self を返します。
0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG3.map{} にどんな動作を期待してる?
0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNGnonzero? ってなんかキモいんで俺は下のようにやる
(a.upcase <=> b.upcase) * 2 + (a <=> b)
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNGp ((0...3).map{|i| "Title#{i.succ}"}) #=> ["Title1", "Title2", "Title3"]
p ((0...10).map{|i| i*i}) #=> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
など。
(0...) を書くのが作業的で面倒くさい。
0542デフォルトの名無しさん
NGNG0543デフォルトの名無しさん
NGNG> Array.new(10) { |i| i + 1 }
> => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
が、できるようになったらしい。
機能的にはとても満足。
だけど、書くのがさらに面倒だ。
0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNG>>536 見て「ハァ?」って思ったけど、 >>541 でちょっと理解できた。
何かイカした名前を付けれれば、採用され・・・ないか。
zero origin か one origin か、とかそういうレベルでももめそうな悪寒。
0546デフォルトの名無しさん
NGNGzero originだけで良いと思われ。
one originが必要なら
foo= 10.map{|i| ・・・・・ }
foo.shift
で出来るけど逆(one origineな実装時にzero origineな結果を得る)
はスッキリ書けないと思われ。
0547デフォルトの名無しさん
NGNGfoo = 10.map{|i| func(i)}
って、zero origineな
foo = 9.map{|i| func(i+1)}
と同じじゃないの?
すっきりしているかどうかという問題に関しては、
shiftするのとどっ恋どっ恋だと思うけど。
0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
NGNG0550デフォルトの名無しさん
NGNGdef times_collect(&b)
(0...self).map{|i| b.call(i) }
end
alias times_map times_collect
end
こんな感じかの、名前どおりtimesに合わせて0オリジンで文句は出ないだろ
0551デフォルトの名無しさん
NGNG0552デフォルトの名無しさん
NGNG[0, 1, 2]
0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNG> スタックを増やす方法をおしえてください。
スタック += 1
0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNG>>357 + >>368のmswinの環境で
ここのアッカーマンが実行できませんでした。
http://www.bagley.org/~doug/shootout/bench/ackermann/ackermann.ruby
irb(main):012:0* ack(3, 8)
SystemStackError: stack level too deep
from (irb):4:in `ack'
from (irb):6:in `ack'
〜〜〜〜略〜〜〜〜〜
from (irb):8:in `ack'
from (irb):12irb(main):013:0>
0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNGmswin32ならコンパイル時に
nmake STACK=0x4000000
だ。
0560デフォルトの名無しさん
NGNG名前が今市という気がする。seqってのはどうだろう。
class Integer
def seq(&b)
range = 0...self
if b
range.collect(&b)
else
range
end
end
end
0561デフォルトの名無しさん
NGNGそもそも times は times_each じゃないと名前が対応しない。
だから times が each という名前を含んでいないのなら、
map / collect の名前を使う必要がない。
だから seq でどうだという解釈でよろしいか?
0562デフォルトの名無しさん
NGNGRuby 日本でのみ有名。日本語対応で優れる。
でOK?
0563デフォルトの名無しさん
NGNGOK.
0564デフォルトの名無しさん
NGNGPythonはrubyをyieldを取り入れたそうです。
C#は次期バージョンで、yieldを導入します。
ttp://www.microsoft.com/japan/msdn/vs/vcsharp/vbconCProgrammingLanguageFutureFeatures.asp
0565デフォルトの名無しさん
NGNGRuby end end end
0566デフォルトの名無しさん
NGNGそんなとこかねぇ。あとはman 1 seq。
それと、{collect|map}_*ってのはたびたび出ても通った例がないから、
語順を逆にしてもどうかな、と。
0567デフォルトの名無しさん
NGNGyieldの実装ってどうなってるの?
yieldが合計100回呼ばれるとしたら要素100の配列を前もって作って返すのか
fiberかなにかを使ってyieldの呼出し毎に値を呼び出し側に返すのか?
0568デフォルトの名無しさん
NGNGGtk::Entry で入力された文字列を右寄せで表示したい
のですが、どうすれば良いですか?
Gtk::Label は set_justify があるので可能なんですが、
Gtk::Entry にはそれらしきものが無いので...。
0569デフォルトの名無しさん
NGNGRubyの?pythonの?
0571デフォルトの名無しさん
NGNGRubyのyieldは、コールバックの呼び出しと思えばいい。
ブロックの実行環境をスタック上に再現して実行する。
0572デフォルトの名無しさん
NGNG他の言語は次バージョンまで待たされるのね。
0573デフォルトの名無しさん
NGNG単に標準で組み込まれるかどうかだけ。
0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG残念ながら。
0577デフォルトの名無しさん
NGNG行を読み、"|" で区切られた部分に分けたい。
s = "1|2|3"
a = s.scan(/[^|]*\|?/)
p a
→["1|", "2|", "3", ""]
"3" までは期待通りだけど、最後の "" の意味が判らん。何にマッチしたの?
今は [-2] の末尾が区切り文字じゃない時、[-1] が空文字列なら pop して誤魔化してる。
正規表現、scan の仕様に詳しい人教えて下さい。
0578デフォルトの名無しさん
NGNGs = "1|2|3"
a = s.scan(/[^|]+\|?/)
p a
↑これだと、["1|", "2|", "3"]になる
[^|]*・・・|ではない文字が0以上
\|?・・・・|という文字が0または1個
3の後に""(空文字)があると考えると、[^|]が0個かつ\|が0個の場合にマッチしている
s = "1|2|3"
a = s.scan(/[^|]+/)
p a
↑これだと、["1", "2", "3"]になる
マッチした部分が配列で返されるから、必要な部分にマッチする正規表現を書けば良い。
0579577
NGNGサンクスです。
"1|2||3" の様に区切りが連続した場合は
["1|", "2|", "|", "3"] の様に検出したいんですが、前者の /[^|]+\|?/ だとマズいんです。
後者は、区切り文字そのものが消えちゃうんで、今回の用途に合いません。
もう少しスマートに書けるかと思ったんですが、やっぱ誤魔化し法で行ってみます。
それとも、処理するコードでスマートにすべきなのか。
ありがとうございました。
0580デフォルトの名無しさん
NGNGなんで空にマッチしてるかの説明が知りたい。
マッチする気なら無限にマッチする事も可能なのに、なぜ1回だけ余計にマッチしてるのか。
"1|2|3" → "2|3"、["1|"]
"2|3" → "3"、 ["1|", "2|"]
"3" → ""、 ["1|", "2|", ""]
"" → なんでこれを処理する?
0581580
NGNG"1|2|3" → "2|3"、["1|"]
"2|3" → "3"、 ["1|", "2|"]
"3" → ""、 ["1|", "2|", "3"]
"" → なんでこれを処理する?
0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNGa = s.scan(/a*?/)
p a
これだと、空文字列7個の配列が返ってくる。
0584デフォルトの名無しさん
NGNG聞いてるのか?
p "aaa".scan(//)
これも空文字列の配列が返るが何か?
正規表現は最左最長マッチする
0585デフォルトの名無しさん
NGNGs = "1|2||3"
a = s.scan(/[^|]*\||[^|]+$/)
p a
こんなんじゃだめ?
0586デフォルトの名無しさん
NGNG以下でどう?
# マッチしたいものは
# (a) "|以外の文字列"の連続と "|"
a = / [^|]+\| /x
# (b) "|" のみ
b = / \| /x
# (c) "|以外の文字列"の連続と "文字列末尾"
c = / [^|]+\z /x
re = / #{a} | #{b} | #{c} /x
p "1|2|3".scan(re) # => ["1|", "2|", "3"]
p "1|2||3".scan(re) # => ["1|", "2|", "|", "3"]
以下でもいいみたいだな。
# マッチしたいものは
# (a) "|以外の文字列"の連続と "|"(または「末尾」)
# 「末尾」と言い切れるのは [^|]+ のおかげ
a = / [^|]+\|? /x
# (b) "|" のみ
b = / \| /x
re = / #{a} | #{b} /x
p "1|2|3".scan(re) # => ["1|", "2|", "3"]
p "1|2||3".scan(re) # => ["1|", "2|", "|", "3"]
0587デフォルトの名無しさん
NGNG正規表現に正規表現埋め込めるのは1.8から
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNG聞いてませんとしか答えようが無いといいながら、
聞いてませんと答えていない。
つまり、あなたの主張は矛盾している。
0592ruby
NGNGa = / [^|]+\|? /x
b = / \| /x
re = / #{a} | #{b} /x
p "1|2|3".scan(re)
p "1|2||3".scan(re)
0593python
NGNGa = r" [^|]+\|? "
b = r" \| "
r = re.compile("%s | %s" % (a,b), re.X)
print re.findall(r, "1|2|3")
print re.findall(r, "1|2||3")
微妙だがパイソンに一票
0594577
NGNGありがとうございます。
言葉が足りなかったんですが、言いたかった事は>>580さんの通りです。
まだ仕様がありまして、"1|2|" → ["1|", "2|", ""] になる必要もあります(配列は必ず "|" の数+1)。
ヒントを頂いたので、自分で練ってみようと思います。
出来上がった物は近い内に公開する予定です。
0595デフォルトの名無しさん
NGNG結局 "|" による split なんだけど、"|" を含まなくてはいけないのが難点で
すね。
Oniguruma (ruby を自分でコンパイルする必要あり)なら戻り読みが使えるの
で
re = / (?<=\|) /x
p "1|2|3".split(re, -1) == ["1|", "2|", "3"]
p "1|2||3".split(re, -1) == ["1|", "2|", "|", "3"]
p "1|2|".split(re, -1) == ["1|", "2|", ""]
で、すべて true になります。ちなみに先読みなら素の ruby で使えるけど
以下のようになります。
re = / (?=\|) /x
p "1|2|3".split(re, -1) == ["1", "|2", "|3"]
p "1|2||3".split(re, -1) == ["1", "|2", "|", "|3"]
p "1|2|".split(re, -1) == ["1", "|2", "|"]
0596デフォルトの名無しさん
NGNG変に凝ると後でわかんなくなる。
0597デフォルトの名無しさん
NGNG考えたんですが、最後の条件のせいで必ず空文字列にマッチする必要がある
そうすると最初の条件を満たさない。だからscanじゃ無理な気がします。
>>596
"|"を"|\0"とかに置換して"\0"でsplitとか
p "1|2|3". gsub(/\|/,"|\0").split(/\0/, -1)
p "1|2||3".gsub(/\|/,"|\0").split(/\0/, -1)
p "1|2|". gsub(/\|/,"|\0").split(/\0/, -1)
0598デフォルトの名無しさん
NGNGできた。要Oniguruma
re = / (?<=\| | ^) [^|]* (?: \| | \z ) /x
p "1|2|3".scan(re)
p "1|2||3".scan(re)
p "1|2|".scan(re)
0599山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0600デフォルトの名無しさん
NGNG最後だけ "|" をとればいいだろ
0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNGそのほうが望ましい
0604デフォルトの名無しさん
NGNGさんくす。
MUSTじゃなくてSHOULDなんですね。
0605デフォルトの名無しさん
NGNGシンボルと文字列はどう使い分けたら良いのでしょうか?
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNGdef foo
1
end
module_function
def bar
foo
end
end
と書くと bar から foo を参照できないのはなぜ?
0609デフォルトの名無しさん
NGNGmodule M
def foo
1
end
module_function
def bar
foo
end
end
p Object.new.extend(M).send(:bar) #=> 1
どうせ、M.barでfooを呼べないとか言ってるんだろうけど
selfが違うからな。M.fooを定義しろ
0610デフォルトの名無しさん
NGNGなんだからインスタンスメソッド呼んぢゃまずいだろ
0611デフォルトの名無しさん
NGNGRuby 1.6で
hoge=[1,2,3]
piyo=hoge
piyo.pop
p hoge,piyo # hoge=[1,2] piyo=[1,2]
foo="baka"
bar=foo
bar+="aho"
p foo,bar # foo="baka" bar="bakaaho"
自分はこれが納得できないのですが、どう理解すればよいでしょうか?
0612デフォルトの名無しさん
NGNG腐ったミカンの方程式
0613デフォルトの名無しさん
NGNGbar += "aho"
は
bar = bar + "aho"
と同じ振る舞い。
つまりbarは新しく生成された文字列オブジェクトを参照する。
もはやfooと同一ではない。
0614デフォルトの名無しさん
NGNGつまり一言で言えば>>612。
0615デフォルトの名無しさん
NGNG矢がささってんだよ。
0616デフォルトの名無しさん
NGNGメソッドには破壊的なものとそうでないものがある。
pop は破壊的にオブジェクトを変更する
+ は新しいオブジェクトを生成する
代入は変数に新しいオブジェクトを割り当てなおす
ふつうはね
0617デフォルトの名無しさん
NGNG+= 100円玉で買えるぬくもり
0618611
NGNGfoo="baka"
bar=foo
bar<<"aho"
p foo,bar # foo="bakaaho" bar="bakaaho"
ですね。
Perlと混乱していますが、"="について、
a=b+'c'(右辺と左辺が違う場合)はaに新しいオブジェクトが割り当てられるが
a=b では新しいオブジェクト割り当てはせず、aとbは同じオブジェクトを指す
ということですか?
0619デフォルトの名無しさん
NGNG0620デフォルトの名無しさん
NGNGs2 = "aho"
s3 = s1 + s2
s4 = s1 << s2
p s1.object_id
p s2.object_id
p s3.object_id
p s4.object_id
p s1
p s2
p s3
p s4
0621611
NGNGメソッドが新しいオブジェクトを返すかどうかってことですね・・・
すみません
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNGtaint関係?
俺が腐ってる?
0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNG0626デフォルトの名無しさん
NGNGなんの関係も無い。惑わされるな。
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNG方法はないでしょうか? values_at は配列を返しますが、hashを返して欲しい。
0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNGnewh = h.reject {|k,| k % 2 == 1}
p h
p newh
{1=>1, 2=>2, 3=>3}
{2=>2}
0631デフォルトの名無しさん
NGNGneed_keys = [1,3]
h2 = h.reject {|k,| not need_keys.member?(k)}
p h2 # => {1=>1, 3=>3}
0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNG多倍精度の浮動小数点型を使うにはどうしたらいいのですか?
0634デフォルトの名無しさん
NGNGrequire 'bigdecimal'
a = BigDecimal("0.1")
b = BigDecimal("0.0")
10.times { b += a }
puts b == 1 #=> true
# ただし、Floatとの演算では暗黙のうちにBigDecimalがFloatに
# なってしまうため、一箇所でも間違ってFloatのリテラルを
# 混じらせると任意精度が保てなくなる事には注意。
0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNG違います。immediate だからではなく、 immutable だから、だよ。
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNGruby 1.6.8 で、inject を使わない場合は?
each でまわすしかないかなあ。
0644デフォルトの名無しさん
NGNG0645デフォルトの名無しさん
NGNGperl使え
0646デフォルトの名無しさん
NGNGすべからく整数として扱ってBignum+指数の演算で処理しろ。
ttp://homepage2.nifty.com/cat-chy/software/
の「big-decimal」参照。
0647デフォルトの名無しさん
NGNG別スレからこぴぺ
matzは彼の博論を受け取ったらしいが、そういえば
matzはちまたの論文を最近も読んでるのだろうか?
もしそういう時間を取れていないのなら、Rubyの実装も
古い世代の設計のままになるという事だよね。
これへの反応は
かなり前だが1.8ではrandのアルゴリズムが変わってるみたいだし。
そういう情報は勝手に入って来るんじゃね?
だった。
自分としては、「勝手に」というのはちょっと違うかと。
randの話なら、MTは他の言語処理系やGLibなどでも
採用されはじめたことで(加えて国内の研究の成果であったことも
ちょっと心理的な追い風となって)Rubyでも採用されたという
経緯があると思う。
確かに、例えばBohemGCを参考にする必要はあるだろうが、
「勝手に入ってくる」範囲内の、つまりはオープンソースの他の
処理系の実装の情報だけでGCを実装していたら、
Rubyの拡張ライブラリでもPythonのようにリファレンス・カウンティングを
するはめ(失礼)になっていただろう。
つーことで、GCの専門家で、Rubyの行く末について語ってくれる
方を激しく募集。
0648デフォルトの名無しさん
NGNGまるっきり別なものを想像してしまった・・・
0649デフォルトの名無しさん
NGNGopen3とexecとsystemって、どう違うんですか!%x(...)とか`str`との違いも
よくわからんです。
open3が速かったりするのかな?
0650デフォルトの名無しさん
NGNG>>648 ワラタ。
0651デフォルトの名無しさん
NGNG何を想像したのか気になる・・・
0652デフォルトの名無しさん
NGNGopen3 子プロセスのstdin/stdout/stderrを個別に扱う。3つのIOを返す。
exec 自プロセス自体を置き換える。戻ってこない。
system 単純に子プロセスを実行。終了を待つ。正常終了(status=0)したらtrue、それ以外か実行に失敗したらfalseを返す。
%xと`` 子プロセスのstdoutを読み込んで、Stringとして返す。
0653デフォルトの名無しさん
NGNGゲームキューブ
0654デフォルトの名無しさん
NGNGruby powerpc-nintendo-gamecubeキボンヌ。
0655デフォルトの名無しさん
NGNGウィンドウが元の大きさに戻らないけどどうすればいい?
require 'gtk'
w = Gtk::Window.new
w.add v = Gtk::VBox.new
v.add button = Gtk::Button.new("delete button")
v.add vbox = Gtk::VBox.new
10.times {|i|
vbox.pack_end Gtk::Button.new(i.to_s)
}
button.signal_connect('clicked') {
vbox.each {|b|
vbox.remove b
}
}
w.show_all
Gtk.main
0656デフォルトの名無しさん
NGNGp ('0b11'.to_i) # → 0
p ('0xFF'.to_i) # → 0
ショックだ。期待と違う。
3年位使ってて、さっき初めて気づいた。
0657656
NGNGp ('0377'.to_i) # → 377
0658デフォルトの名無しさん
NGNGp ('0377'.to_i(0)) # → 255
p ('0b11'.to_i(0)) # → 3
p ('0xFF'.to_i(0)) # → 255
0659デフォルトの名無しさん
NGNG俺も知りたい。
set_usize, set_default_size, size_allocate, size_request が
関係してそうだけど色々試しても全然思い通りいかん。
0661デフォルトの名無しさん
NGNG0662655
NGNGbutton.signal_connect('clicked') {
window_size = w.size_request
vbox.each {|b|
window_size[1] -= b.size_request[1]
vbox.remove b
}
w.resize(*window_size)
}
ちなみに、gtk2 でしか試してないです。
0664デフォルトの名無しさん
NGNGすべからく の誤用。
半島へカエレ!
0665デフォルトの名無しさん
NGNG>>661
売れるのならばね…(ボソッ
0666660
NGNGユーザ数の事を言ってる?(w
でも、コード書いてて引っ掛かった時に、リファレンス代わりになる物が欲しいと思う。
Web やら ML やらから今までの変更を断片的に追うより、網羅的な物が。
0667デフォルトの名無しさん
NGNGと無責任に言ってみる。
0668デフォルトの名無しさん
NGNGhttp://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=Array#insert
を見つつ
ruby 1.6.7 (2002-03-19)で
class Array
def insert( n, *vals )
self[n, 0] = vals
self
end
end
a = [3,4,5]
b = [1,2]
a.insert 0, b
p a # => [[1, 2], 3, 4, 5]
となるんですが
[1, 2, 3, 4, 5]
ってしたい場合はどうやればいいんでしょう?
0669デフォルトの名無しさん
NGNGa[0,0] = [1,2]
p a #=> [1, 2, 3, 4, 5]
0670デフォルトの名無しさん
NGNGリファレンス代わりの本だったらprogramming rubyじゃねえの。
おれはWebのマニュアルが最新情報に対応して検索もできていいと思うけどね。
0671デフォルトの名無しさん
NGNGどうしてもそのメソッドでやるんなら、返値の self を self.flatten! にするとか。
0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNG即レスどうもです
わざわざinsertを用意しなくてもできるんですか
全然しらんかった
>>671
どもです
self.flatten!も知りませんでした。
でも二次配列(?)を追加したいんで…
0674673=668
NGNG0675659
NGNGp w.size_request #=> ( 84, 242)
p w.size_request[0] #=> undefined method `[]' for ( 84, 242):Gtk::Requisition (NameError)
p w.resize(10,10) #=> undefined method `resize' for #<Gtk::Window:0x4025ed68> (NameError)
gtk1だと全然ダメだった。
0676672
NGNG0677デフォルトの名無しさん
NGNGa.insert 0, *b
>>676
time.rbもあるよ。
0678662
NGNGこんなんでどう?(もう試してるかもしれないけど)
button.signal_connect('clicked') {
window_size = w.size_request
vbox.each {|b|
window_size.height -= b.size_request.height
vbox.remove b
}
w.set_default_size(window_size.width, window_size.height)
}
0679675
NGNG再び試したけどウィンドウサイズは変わらんかった。
そもそも set_default_size は最初に開いたときのサイズでしょ。
resize っつーのがないと、後から変更するのはもう無理なんじゃないか。
0680デフォルトの名無しさん
NGNGDir.glob(**/*_test.rb') { |f|
require f
}
なんてやっても自動的にテストが呼び出されてテスト始まるんだけど、
しかし、setup が実行されなかったりする
0681680
NGNG失礼しますた
0682デフォルトの名無しさん
NGNGC:/ruby/lib/ruby/site_ruby/1.8/amrita/xml.rb:101: warning: toplevel constant File referenced by REXML::File
てな warning が出るのはどうにかならないだろうか
0683デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNGどうすればいいんでしょうか?
0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNGLL2とかOOPSLAとかOSCONとかに行ってるんだから、最近の研究(最新、じゃない
かもしれないけど)の話が出てこないわけがないでしょ。
もちろん、話を聞いたからといって、採用するかどうかは別でしょうし、
いまいち理解できない分野もあるんでしょうけど(特に数学方面とか)。
0689デフォルトの名無しさん
NGNG0690655
NGNG元の655だけども、同じくうまく行ってない。まだ
いろいろは試せてないけど。もうちょっとあがいてみます。
ちなみに、ruby-gnomu CVS (gtk-1.2) と ruby 1.8.0 CVS でした。
gtk2.0 にしてみます。
返事遅れてスミマセソ
0691デフォルトの名無しさん
NGNGならrubyで書きたいんだけど、仕事でASPをrubyで書いている人い
ますか?ついでに何でそんなもん使うんだという問いに対する効果
的な解答例も。
Windows 2000のサーバで、drbのサーバを動かしっぱなしにして仕
事させてる人はいますか?
0692デフォルトの名無しさん
NGNGStringにはreplaceってメソッドがあるらしい事は判ったんだけど、
やろうとしてるのはFloat。
より具体的に、saturate!(min,max)というのを考えてる。
selfがmin未満ならminに、maxを超えてたらmaxにする。
組み込みでもうあるかな。
Floatのメソッドじゃなく、関数にしちゃえば解決かもしれんけど、なんか面白くない。
0693デフォルトの名無しさん
NGNGできない。
0694デフォルトの名無しさん
NGNG代入を伴ってもよいんなら、
class Float
def saturate(min, max)
return min if min > self
return max if max < self
self
end
end
やね。
でも、1.1.saturate!(2, 3)って意味わけ分からんやん。
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNGGUIなプログラム作れないと初心者にはガッカリ度が高いかもなので、敷居が高くなってもこの方がいいのか。
0698デフォルトの名無しさん
NGNG「熊谷秀武・著 吉田和弘・監修」だから、Apolloは必然と思われ。
0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNGそのことに激しく違和感
0702デフォルトの名無しさん
NGNG気付いてるかもしれんが、作者さん日記に回答が。
0703655
NGNG最終的に>>662で行けました。
ruby-1.8.0 CVS
ruby-gnome2 CVS (ruby-gnome「2」ってあるの知らなかたよ。まぬけ)
gtk+-2.2.2
っとすべて最新で以下
>>678のは残念ながら
undefined method `height' for [93, 308]:Array (NoMethodError)
と出てダメでした。
どもありがと。これを元に勉強させてもらいます。
しかしTkの方が楽だね。何かと。
0704655
NGNGrequire 'gtk2'
Gtk.init
w = Gtk::Window.new
w.add v = Gtk::VBox.new
v.add button = Gtk::Button.new("delete button")
v.add vbox = Gtk::VBox.new
10.times {|i|
vbox.pack_end Gtk::Button.new(i.to_s)
}
button.signal_connect('clicked') {
window_size = w.size_request
vbox.each {|b|
window_size[1] -= b.size_request[1]
vbox.remove b
}
w.resize(*window_size)
}
w.show_all
Gtk.main
0705デフォルトの名無しさん
NGNGそんなこといってたのか…
おれが思うに変数は紐だと思うw
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNGオブジェクトが犬あたりか
誰からもつながれなくなった犬は山に帰っていくわけですな
0708デフォルトの名無しさん
NGNG変物と呼んでくれ。
0709デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています