2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Ruby について Part 4

1 :Just Another Ruby 2cher:03/06/30 12:35
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。

Ruby 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


2 :Just Another Ruby 2cher:03/06/30 12:35
= 関連スレ

== [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/


3 :デフォルトの名無しさん:03/06/30 12:40
3

4 :デフォルトの名無しさん:03/06/30 13:59
>>1000

5 :デフォルトの名無しさん:03/06/30 15:38
a=Hoge.new
array.push(a)
array.last.method()
p a
で、俺が何がしたいのか分かる?
どーすりゃいいの?

6 :デフォルトの名無しさん:03/07/01 00:07
>>5
わからん

7 :デフォルトの名無しさん:03/07/01 00:42
>>5
どう困っているのかもわからん

8 :デフォルトの名無しさん:03/07/01 01:28
>>7
俺には困っているかどうかさえわからない。

9 :デフォルトの名無しさん:03/07/01 02:37
>>8
日本語が不自由なことに困っていることは分かったyo

10 :デフォルトの名無しさん:03/07/01 22:39
>>5
method() は Object#method のことじゃなくて、
なにか任意のメソッドを適用したいのかなあ?

11 :デフォルトの名無しさん:03/07/02 00:49
array.push(a) を array.push(a.dup) に変えるのが正解と大予想

12 :デフォルトの名無しさん:03/07/02 04:33
関係ないけど
> array.last.method()
の () にすげー違和感があるのオレだけ?


13 :デフォルトの名無しさん:03/07/02 05:36
括弧がある方が漏れは好きカッコイイ

14 :デフォルトの名無しさん:03/07/02 09:35
括弧がある方はJavaみたいでカッコワルイ


15 :デフォルトの名無しさん:03/07/02 11:29
で、>>5はどこ逝ったんだ。

16 :デフォルトの名無しさん:03/07/02 12:13
究極の選択:
method ()
method( )

17 :デフォルトの名無しさん:03/07/02 12:41
1.8では前者は常に(-w付けなくても)警告が出る。


18 :デフォルトの名無しさん:03/07/02 22:56
Float('1_000') が 1000.0 になるのに、
'1_000'.to_f が 1.0 になるのは納得いかん。

19 :デフォルトの名無しさん:03/07/02 23:02
>>18
たしかに1.6は_を認識しないな。

20 :デフォルトの名無しさん:03/07/03 23:25
1.8ではどっちも1000.0になる

21 :デフォルトの名無しさん:03/07/04 01:33
CGIのプログラムで、受け取るデータの大きさを
制限しようと思うのですが、
どうすればいいでしょうか?

IOオブジェクトならgetcしながら、ファイルサイズを
計算すればいい(?)のでしょうが、
CGIオブジェクトはどうすればいいかわかりません。

22 :デフォルトの名無しさん:03/07/04 01:38
Apacheのディレクティブ使えば?

23 :デフォルトの名無しさん:03/07/04 01:44
>>21
向こうが送りつけてくるものは制限できないから、
受け取ったあとでちょんぎるなりsizeとってエラー出すなりすればいいんじゃないの?

24 :デフォルトの名無しさん:03/07/04 01:59
>>21
もしCGIプロセスのメモリ消費を気にしているなら、
CGI#stdinput を再定義して自作のバッファに差し替えるという手もある。
そのバッファオブジェクトは read と binmode だけ持っていれば良い。

25 :デフォルトの名無しさん:03/07/04 02:14
>>22
自宅サーバーじゃないから残念ながら設定できないです。
>>23
たしかに、sizeとってエラーが一番簡単そうですね。
>>24
一度、挑戦してみます。

ありがとうございました。

26 :デフォルトの名無しさん:03/07/04 05:17
CGIといえば、
アップローダみたいに送られてくるデータが大きくなったとき、
データが送られてくるのが完了する前に中断されると
CGIオブジェクトの初期化のところで延々と止まってしまう。
どうしたらいいだろうか。

27 :デフォルトの名無しさん:03/07/04 05:43
begin
timeout(delay){cgi=CGI.new}
rescue TimeoutError
exit(1)
end

28 :デフォルトの名無しさん:03/07/04 10:30
RedHat8,にソースからmakeして入れたruby-1.6.8で$0の挙動がなんかおかしい。
print "ContentType: text/plain\n"
print $0
ってかいただけのファイルを作ってApache1.3.27+mod_ruby越しに見るとfalse、
コンソールで実行すると空文字列が$0に入ってた。
リファレンスとなんか違うし、このままだと$0 == __FILE__とかが出来ないので困る。
ActiveScript Rubyにくっついてたruby-1.6.8`を使って同じスクリプトを
win2kのコンソールで実行すると、$0には実行しているスクリプトの名前が
入ることは確認できたんだが、何が悪いんだろう。ruby入れ直せば直るのかな。

29 :デフォルトの名無しさん:03/07/04 10:39
mod_rubyはruby_options()もruby_script()も呼んでないので、$0が初期化されない。
バグだと思うなら、前田さんへ。

コンソールで実行ってのは、普通のrubyコマンドで$0が空だったってこと?

30 :28:03/07/04 12:16
>>29
>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とやってみたが、出力には何も出てこないようだ。
うーん、やっぱりよく解らない……。


31 :7cさん:03/07/04 13:11
$ ruby --version
ruby 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?

32 :デフォルトの名無しさん:03/07/04 13:15
>>30
zsh とか使ってない?プロンプトで出力が消されたんじゃない?ちゃんと改行しとけ。

33 :_:03/07/04 13:16
http://homepage.mac.com/hiroyuki44/hankaku02.html

34 :デフォルトの名無しさん:03/07/04 14:42
>>30
> 何でfalseが入ってたのだろう。
$0の実体はrb_prognameという変数で、これはとくに初期化されてないので0になってる。
で、CレベルではQfalse==0ということ。


35 :デフォルトの名無しさん:03/07/04 14:43
>>31
部分配列の先頭自体が範囲を外れてるから。

36 :7c:03/07/04 14:58
>>35
[1,2,3]が持つ範囲は 0..2 なわけで
a[3,5]の時点で範囲を外れている気がする。
漏れがアフォなだけですか?


37 :デフォルトの名無しさん:03/07/04 15:39
この場合、先頭位置は要素の間にあると考えた方がいい。
つまり、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は無効な範囲ね。



38 :"c"*7さん:03/07/04 16:11
>>37
そういうイメージなのですか……。
一貫性がない気がするが……。
予備のスペースとして一個とってあるのかとか色々考えてしまった。
処理的には nil or size == 0 するだけだからいいっちゃいいんだが。
1.8でも変わらんのですか?

39 :デフォルトの名無しさん:03/07/04 17:02
1.8でも一緒。

a[4,5].to_a.empty? とか。

40 :デフォルトの名無しさん:03/07/04 17:30
>>39
サンキューです。
それで逝きます。
FAQっぽいけど、これって既知?

41 :デフォルトの名無しさん:03/07/04 23:55
>>37 正直カンドーした。是非、次の出力も図解して下され。
p [0,1,2][-2..-1]
p [0,1,2][-2..+0]
p [0,1,2][-2..+1]

42 :デフォルトの名無しさん:03/07/05 02:18
>>41
マイナスは末尾から数えるというだけで、とくに変わりはないんだが。

> 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]

43 :デフォルトの名無しさん:03/07/05 04:09
>>42
> > p [0,1,2][-2..+1]
> [0,<1>,2] # 3-2=1

なるほど、そう考えれば 0 は入らないのか。さんくす

44 :デフォルトの名無しさん:03/07/06 19:57
>>11
まさにそれです。ありがとうございました。

45 :デフォルトの名無しさん:03/07/06 20:06
Rubyを勉強し始めて実はよく分かってない事に気付きました。
'#' と '::' と '.' の違いを分かりやすく教えてください。

46 :デフォルトの名無しさん:03/07/06 20:08
#include <stdio.h>
int 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");
}
}
}
}


47 :デフォルトの名無しさん:03/07/06 20:26
>>45
ドキュメントのことだよね?

--- 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

と使う。
クラスメソッドに"."を使うか"::"を使うかは好みなのかな?(意味は同じハズ)

48 :デフォルトの名無しさん:03/07/06 20:47
ありがとうございます。
プログラム中では '::' と '.' は全く同じ意味なんですね。

あと、refeのドキュメントではSingletonメソッドとInstanceメソッドで '.' と '#' を使い分けてる気がします。

49 :デフォルトの名無しさん:03/07/06 20:48
すみません。 '.'と'::'が同じなのはクラスメソッドの時だけですね

50 :デフォルトの名無しさん:03/07/06 22:47
File.openブロック内で例外を投げたらcloseしてくれますか?

51 :デフォルトの名無しさん:03/07/06 22:52
>>50
ブロックを抜けるときにcloseする。
だから例外を投げれば、ブロックを抜けないように細工してない限りcloseされるよ。

52 :デフォルトの名無しさん:03/07/06 23:01
>>51 THX!!

53 : :03/07/07 19:00
rubyを組み込んだシェアウェアを作ろうかなと思ったんだけど、
これってライセンスに問題ある?
色々検索してみたけどよく分からない・・・

54 :_:03/07/07 19:04
http://homepage.mac.com/hiroyuki44/2ch.html

55 :デフォルトの名無しさん:03/07/07 20:26
>>53
じゃあやめとけ。
ていうか作ってから言え。

56 :デフォルトの名無しさん:03/07/07 22:53
rubyをシェルから簡単に動かしてみたいんですが、
どんな方法があるんでしょうか?

今は
$ ruby << EOF
puts "AAAA"
EOF
AAAA

とかやってるんですが・・・。

57 :デフォルトの名無しさん:03/07/07 23:02
irb じゃだめなの?

58 :デフォルトの名無しさん:03/07/07 23:08
>>57
irb、知りませんでした。
これでできそうです。

情報thxです。

59 :デフォルトの名無しさん:03/07/07 23:14
>>53
デュアルライセンスのArtisticの方を取れば平気では?
検索掛ける前にライセンス文章読むほうがいいと思われ。

60 :デフォルトの名無しさん:03/07/08 02:56
$ ruby
puts "AAAA"
^D
AAAA
じゃだめなの?

61 :デフォルトの名無しさん:03/07/08 06:11
perlも引数がないときは標準入力から読むのか。知らなかった。
>>60
サンキュー

62 : :03/07/08 07:46
>>55
作ってから「ダメでした」じゃ労力の無駄じゃないか、バカ

63 :デフォルトの名無しさん:03/07/08 11:37
>>62
バカのためにわざわざ時間を割いてライセンスについて解説するのも
労力の無駄じゃないか、バカ


64 :デフォルトの名無しさん:03/07/08 12:02
>>63
んな事言ってたら掲示板やMLの存在価値が薄くなるじゃん。
そういう人に限って解説出来るほど知識なかったりするんだけどね。

65 :デフォルトの名無しさん:03/07/08 12:26
Ruby厨の本性見たり、枯れ尾花

66 :デフォルトの名無しさん:03/07/08 13:40
>>64
で、 tarball の COPYING (COPYING.ja) は読みましたか?

67 :デフォルトの名無しさん:03/07/08 15:13
だいたい今時シェアウェアなんてはやらねーよ。

68 :デフォルトの名無しさん:03/07/08 15:15
>>66
それ、サイトにあったから読んだけどよく分かんない。
rubyを組み込んだシェアウェアの場合、”3”に該当すると思うんだけど、

3. 以下の条件のいずれかを満たす時に本プログラムをコンパイ
ルしたオブジェクトコードや実行形式でも配布できます.

(a) バイナリを受け取った人がソースを入手できるように,
ソースの入手法を明示する.
(c) 変更を行ったバイナリは名前を変更したうえ,オリジナ
ルのソースコードの入手法を明示する.

(a)の指すソースというのは、rubyではなく作ったソフト?
(c)で「オリジナル」ってわざわざ書いてるからには、
(a)はrubyが組み込まれたアプリのソースなんだろうな・・・
ならシェアウェアとは相容れない気がする。


69 :デフォルトの名無しさん:03/07/08 15:52
>>68
3(a)はRubyそのものをバイナリ配布するときの規定と思われるので、
3(c)にだけ従えばいいんじゃない?

つまり、Ruby embedded なソフトウェアは
1) Ruby と名乗ってはいけない
2) Ruby の入手先を明示する

だけでいいと思う。


70 :デフォルトの名無しさん:03/07/08 19:24
バイナリ配布のときは実質的にLGPLになるのかと思ってた

71 :デフォルトの名無しさん:03/07/08 22:21
修正BSDくらいの緩いライセンスを志してたはず。
Rite のリリースにあわせてライセンスも変わるのでは。

72 :デフォルトの名無しさん:03/07/08 22:30
matzに地元で採れたリンゴでも送っとけばOK。

73 :デフォルトの名無しさん:03/07/08 23:01
どっちにしろ、 Ruby で金儲けしたいひとにもやさしいライセンスになるんでしょ?

74 :デフォルトの名無しさん:03/07/09 00:18
>>70
regex.[ch]を含むならそうなのでは?LGPLの5と6を読む限りそうとしか思えん。

75 :デフォルトの名無しさん:03/07/09 02:40
>>74
さらに、mswin32/mingw32/bccwin32版の場合はwin32/win32.[ch]のライセンスも
絡んでくるのでよくよく考えてみる必要がありそう。


76 :デフォルトの名無しさん:03/07/09 04:06
flag = false
Thread.start {
    while !flag
        do_something
    end
}

while line = gets
    if line.chop == 'end'
        break
    end
end
メインスレッドはユーザーの入力待ち、生成したスレッドはユーザーの終了コマンドが
来るまでずっと何かをし続ける。というスクリプトが書きたかったのですが、
上記のスクリプトだとメインスレッドのgetsのせいで生成したスレッドが動いてくれません。
何か良い方法などがありましたら、教えてください。

77 :76:03/07/09 04:18
すみません環境を書き忘れていました。
WinXP+mswin32バイナリ
です。よろしくお願いします。

78 :デフォルトの名無しさん:03/07/09 10:20
(σ・∀・)σgets!!

79 :デフォルトの名無しさん:03/07/09 10:36
Winは知らんけど、Linuxだとgetsでスレッドは止まらんな。

80 :デフォルトの名無しさん:03/07/09 10:43
Native Win32だとgetsはスレッドを止める。FAQだね。


81 :76:03/07/09 12:03
>>80
ガ━━ΣΣ(゚Д゚;)━━ン
そうですか、FAQでしたか・・・
>>76でしたいことは、
ひたすらデータを集め続け、ユーザーが任意のタイミングで
データ集めを終了させ、集めたデータをメモリからファイルに書き出す。
ということなんですが、別にスレッドを使わなくてもgetsを使わなくても
良いので何か代替案はありませんか?

82 :デフォルトの名無しさん:03/07/09 12:19
>>81
Ctrl+Cを押す、とか。


83 :デフォルトの名無しさん:03/07/09 12:40
>>82
それだと、ファイルへの書き出しが出来なくなりませんか?
集めたデータに対して変更をする可能性があるので
データをメモリ上に置いておきたいので、集めた物から逐一書き出し
することは出来ません。最後に必ず実行したいのです。

と、ここまで書いて思い付いたのですが、『最後に必ず』と言うことで、
例外処理のensureでやれそうな気がしました。Ctrl+CのInterrupt例外クラス
を捕捉してやってみようと思います。>>82氏サンクス。

84 :76 == 83:03/07/09 13:05
stopFlag = false
trap(:INT) {
    stopFlag = true
}

while !stopFlag
    do_something
end

ファイルへの書き出し処理コード
========================================
上記の方法で、Ctrl+Cでファイルへ書き出して終了させることが出来ました。
皆さん、ありがとうございました。

85 :デフォルトの名無しさん:03/07/11 17:07
ruby-mswin32(static) をmfcに組み込むと、
終了時にVC.NET がmemory leakだとかいって
オブジェクトをdumpずーーっとします。
何か間違ってる可能性がありますか?
ちなみに、新規プロジェクトでなんにもない状態から、
ruby_init();
ruby_finalize();
ってやっただけです。
1.6.8 と1.8.0 で両方試してみましたが、ダメでした。


86 :デフォルトの名無しさん:03/07/11 18:14
Rubyのメモリリークは仕様です

87 :デフォルトの名無しさん:03/07/11 19:49
メモリリークの定義によると思うが。
そういうもんなので気にしなくてよろし。



88 :デフォルトの名無しさん:03/07/11 21:24
>>85
組込みクラスとかシンボルテーブルとか、開放しないものはいっぱいある。

89 :デフォルトの名無しさん:03/07/11 23:44
Perlにおいても言える事だが、Init_libraryに対するDestroy_libraryがあればいいのにな。

90 :デフォルトの名無しさん:03/07/12 00:34
>>89
なくちゃいけない理由は?

91 :デフォルトの名無しさん:03/07/12 01:12
>>90
別に。「あればいい」だけで「なくちゃいけない」とは誰も言ってませんが。

92 :デフォルトの名無しさん:03/07/12 02:27
拡張ライブラリだと、見えないとこでどう使われてるか分からんから危険すぎ。

93 :デフォルトの名無しさん:03/07/12 02:56
>>89
やっぱ処理系側が面倒見るのがいいんじゃ。

94 :デフォルトの名無しさん:03/07/12 09:26
つーかruby_finalize()した後まで色々残ってるってのは気持悪くないのか


95 :デフォルトの名無しさん:03/07/12 12:14
正直、これハマりました。

p {"a"=>1} # Error
p ({"a"=>1}) # OK

96 :デフォルトの名無しさん:03/07/12 12:22
warning: (...) interpreted as grouped expression

97 :デフォルトの名無しさん:03/07/12 13:53
>>94
それってmalloc/freeの部分の話も含んでる?
だとしたらfjでの某論争がここに再現するかも(w

98 :デフォルトの名無しさん:03/07/12 16:00
>>97
rubyコマンドの話なら、malloc/freeはどうでもいい。
ただ、rubyエンジンをないそうしたアプリケーションの場合は、
ちゃんとfreeした方が良いんじゃないか、とは思うが。

99 :デフォルトの名無しさん:03/07/12 17:01
a = 0
def a.foo
end

なんで定義できないんだよ!

100 :デフォルトの名無しさん:03/07/12 17:14
実装上の仕様で、Integer オブジェクトは即値だから。

101 :デフォルトの名無しさん:03/07/12 17:19
なんで定義したいんだよ

102 :デフォルトの名無しさん:03/07/12 17:37
>>100
即値なのはFixnum。
でも、即値だから定義できないのだっけ?
一時期できていたのを、意図的にやめた気がします。

103 :97:03/07/12 17:40
>>98
妙に納得。純粋にライブラリとして使っている
アプリ側から見たら、確かに。
何でそうじゃないんだろ

104 :デフォルトの名無しさん:03/07/12 17:54
ふつー寿命が同じだからでしょ

105 :97:03/07/12 18:35
フロントエンドである「ruby」から使うことが最優先だから、
ライブラリとしての完成度を高めるための余分な手間を
かけたくない、ってことでよろしい?

106 :デフォルトの名無しさん:03/07/12 18:38
>>95
これはどうしてエラーになるの?
初心者でスマソ。

107 :デフォルトの名無しさん:03/07/12 18:39
>>105
というよりも、その部分に手間をかけたい人が今のところいないってことかと。
ruby-dev にご参加ください。

108 :97:03/07/12 18:52
>>107
なるほど。自分はぜんぜん詳しくないけど、そういう話題が
ふさわしい時期、たぶん1.9か2.0の開発が始まる頃までに
そういう問題提起をできるまでのスキルになりたいっす。
かんばりまふ。(devは見てますよ、いちお)

109 :95:03/07/12 19:06
>>106
なんでか知らん。

110 :デフォルトの名無しさん:03/07/12 19:09
馬具?

111 :デフォルトの名無しさん:03/07/12 22:07
>>106
ブロックがイテレータとして扱われるからでは。

112 :デフォルトの名無しさん:03/07/12 22:07
>>106

def q() puts yield end

for line in <<EOS do eval(line) end
q { "helo, world" }
q { 1 <= 2 }
q { 1 => 2 }
EOS

113 :デフォルトの名無しさん:03/07/12 22:44
Rubyの+や-や*や/などってメソッドだそうですが、
a = 3 + 5 * 7; p a
の結果が、3の+メソッドに5を渡した返り値8。
返り値8の*メソッドに7を渡した返り値56がaにあると考えるのが、
メソッドだとすると普通だと思うのですが、結果は38です。
いったいこれのどこがメソッドなのでしょうか?


114 :デフォルトの名無しさん:03/07/12 23:03
>>113
マニュアルにある理由じゃない?
>プログラミングの利便のために一部のメソッド呼び出しと制御構造は演算子形式をとります。


115 :113:03/07/12 23:30
一応、実行される順番が文法で普通でなくてもIntegerのインスタンスメソッドを呼び出しているのですよね。
電子の妖精さんが、実行順序を算数の普通に変更してくださってると、理解しときます。

それはさておき、
Fixnumは即値であるという表現がされていますが、
そのオブジェクト自身の値を変えられないのは即値であるという理由からなのでしょうか?
Bignumは即値でないそうですが、「i++」のように、値を変えても問題ないのではないでしょうか?

116 :デフォルトの名無しさん:03/07/12 23:44
>>115
数値を変えられないのは仕様だろう。mutableな数値はなかなか奇抜な発想では?
num0 == num1 ならば num0.id == num1.id が成り立って欲しいくらいだが、
それだと効率が悪いからFixnum以外はそこまではしないのだと思われ。
だからFixnumが即値なのは理由というより単に実現方法じゃないかな。
即値それ自体は言語仕様には関係のない用語だと思う。

117 :デフォルトの名無しさん:03/07/13 02:47
Ruby/Gtkで、CListにappendしたデータを取得する方法ってないの?
Ruby/Gtkプログラミング入門の書籍を見てんだけど載ってない。
これは、自分で管理した方がいいということかな。

118 :デフォルトの名無しさん:03/07/13 10:20
>>117
children かなんかで取れなかったっけ?
確か、はるか上のクラスで定義されてるんだよ。

119 :117:03/07/13 11:46
children だと空の配列しか返ってこなくて
rbbr.rb でいろいろ調べてたら分かりました。
get_text(row,column) で取得可能でした。

120 :デフォルトの名無しさん:03/07/13 13:26
>>117
CListはobsoleteなんで、これからやるなら
Ruby/GTK2のTreeView周りもよろしく。

121 :デフォルトの名無しさん:03/07/13 15:14
>>115
前の方のレス見れ!!!……と思ったら、このスレじゃなかった。スマソ。

↓ i++ とか mutable とかの話をしてる。
[UNIX板] rubyを語るスレッド 3
http://pc.2ch.net/test/read.cgi/unix/1045705000/573-619n

122 :デフォルトの名無しさん:03/07/13 15:33
一応書いとくけど、
語るスレ3 の >>619
> しかし文字列もそうなんだけど、Cプログラマのmatzには
> 文字列の数学的性質に馴染みがなかったから string を
> mutable にしたんだろう。

は少し的外れじゃなかろうか。
一言で言えば「Perlに合わせた」んじゃ。
つまりは、よく使われる文字列処理においては
(特にFixnumと比べて)オブジェクトの生成による性能低下が
顕著になるから、ということではないでしょうか。

ご存知の方が多いでしょうけど、
PythonやJavaにおける普通のstringはimmutableです。
思想の違い以外にも、想定用途の違いもあると思う。

123 :122:03/07/13 15:45
微妙に文字列の話にそれるけど、要はこういうことね

S = 'hoo'
S.gsub!('o', 'e')
p S
# => "hee"

Sが指すのは「文字列『変数』」で、
Stringは「文字列を『保持する』クラス」であるっつー事にもなる。
この理由は>>122と推測。

Integerでこれができると「整数を保持するクラス」になって、
「整数クラス」にならない。これが分かりづらいって話じゃないでしょうか。

124 :デフォルトの名無しさん:03/07/13 15:58
>>113

突き詰めれば、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

125 :デフォルトの名無しさん:03/07/13 16:13
演算子の優先順位の表をにらめっこしながら括弧付けてけばわかりやすいかと。

a = 3.+(5.*(7)); p a


126 :デフォルトの名無しさん:03/07/13 17:10
>>122
text processings に重きをおくPerlの経験に習ったのも理由の一つだろうね。
しかし元の文脈は Integer が immutable で String が mutable であることを
説明するであって、Integer には数学的対象としての性格を求め、
String には求めなかったというのもそれ自体は間違っちゃいないと思う。

127 :デフォルトの名無しさん:03/07/13 17:12
equal? が identical? という名前だったら意味が分かりやすかったろう。
equal? と == の意味が異なるのは英語として分かりにくい。

128 :デフォルトの名無しさん:03/07/13 17:23
[a,b,[c,[d,e]]]という配列を
"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
でできるんだけどね(^^;

129 :122:03/07/13 17:24
>>126
確かに。解説どうもっす。

130 :デフォルトの名無しさん:03/07/13 17:35
>>128
押してもだめなら引いてみよう。
puts [1,2,[3,[4,5]]].inspect.gsub(/\[|\]/, "\"")
# => "1, 2, "3, "4, 5"""


131 :デフォルトの名無しさん:03/07/13 17:39
>>127
ナイスだとおもいます。
1.9/2.0に向けてなら、提案の価値があると思います。

132 :130:03/07/13 17:42
ぜんぜん違うし>>130
出直してきます

133 :デフォルトの名無しさん:03/07/13 17:44
>>128
仕様がいまいち分からんがこういうことか?

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\\\"\""

134 :デフォルトの名無しさん:03/07/13 18:02
equal?は何でequalなんだろう。
英語のequalにidenticalの意味ってあるんだっけ?
手元に英英辞書がないから分からん。

135 :130:03/07/13 18:03
出直してきました。

def 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氏の前に完敗です。

136 :131:03/07/13 18:14
>>134
Webは手元にあるはずです。
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? じゃないでしょうか。

137 :デフォルトの名無しさん:03/07/13 20:41
すこしでも速いrubyスクリプトの書き方についてまとめたページってある?
むかしはloveruby.netにあったような覚えがあるんだが。

138 :デフォルトの名無しさん:03/07/13 21:00
>>137
聞く前に調べる。
http://www.google.co.jp/search?sourceid=navclient&hl=ja&q=Ruby+%E6%9C%80%E9%81%A9%E5%8C%96

139 :デフォルトの名無しさん:03/07/13 22:55
>130
うちの環境だと
3:in `foo': undefined method `spl_csv' for #<Object:0x2859618> (NameError)
っておこられるのだが、spl_csvってどっかの拡張メゾットか?

140 :139:03/07/13 22:56
>139の1行目は>133
の誤りです

141 :デフォルトの名無しさん:03/07/13 23:36
>>138
さんきゅう
最適化という言葉が浮かばなかった

142 :138:03/07/13 23:44
>>141
どんまい。漏れもそういう時あるよ。…(自然・人工問わず)言語って難しい

143 :デフォルトの名無しさん:03/07/14 01:07
xmlscan の上野さんが高速化のコツみたいなんをどっかで書いてたような。
ぐぐってみたけど見つからんかった。

144 :デフォルトの名無しさん:03/07/14 02:09
>>139
>133は再帰のつもりだった。spl_csv を foo に書き換えて。

145 :デフォルトの名無しさん:03/07/14 03:09
ruby遅いで

146 :デフォルトの名無しさん:03/07/14 05:24
何をいまさら。。。

147 :デフォルトの名無しさん:03/07/14 05:39
速くする話って雑誌の記事でもなんかあったような

148 :デフォルトの名無しさん:03/07/14 09:05
遅くする話もしませんか

149 :デフォルトの名無しさん:03/07/14 09:33
可能な限り破壊的メソッドは使わずにオブジェクトは毎回作る

150 :デフォルトの名無しさん:03/07/14 09:40
ローカルでない変数の更新はすべてマルチスレッドセーフにする。

151 :デフォルトの名無しさん:03/07/14 11:30
Ruby 自体がスレッドセーフにならなきゃ安心して Ruby を組み込めねーよ!
というひとの数 →

152 :デフォルトの名無しさん:03/07/14 12:47
スレッドセーフになったとしても安心しては組み込めないな。


153 :デフォルトの名無しさん:03/07/14 14:15
>>148
C的に書く。

例:文字列の操作
× str = str.sub(/a/, 'A')
○ cc = 'a'; str.split(//).each {|c| if c == cc then cc = nil; 'A' else c; end}.join


154 :デフォルトの名無しさん:03/07/14 14:52
>>153
str = "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);

155 :デフォルトの名無しさん:03/07/14 16:05
>>153
すくなくとも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の物に近いはず

156 :デフォルトの名無しさん:03/07/14 16:24
>>155
> scanの方が速い

ならsplitを使うべきなのでは?

157 :デフォルトの名無しさん:03/07/14 19:16
>>155痛すぎ。

158 :155:03/07/14 22:40
アウチ

159 :デフォルトの名無しさん:03/07/14 22:51
>>155
勉強になった。


160 :デフォルトの名無しさん:03/07/15 05:24
正規表現自体の最適化について参考になるページってありませんか?


161 :デフォルトの名無しさん:03/07/15 07:16
商用向けソフトで組み込みスクリプトとして使いたいので、
ライセンス的に不都合が無いか調べています。

LICENSE.txtの第3項で質問があるのですが、
> (a) バイナリを受け取った人がソースを入手できるように,
> ソースの入手法を明示する.
これは、組み込んだソフト全体のソースコードを公開せよ、ということですよね。

> (b) 機械可読なソースコードを添付する.
これは、どういうことなのでしょうか?
結局はコンパイル可能なソースコードを付けろ、ということですか?

自分の解釈では、商用向けには向かないと考えていますが、
実際のところどうなのでしょうか

162 :デフォルトの名無しさん:03/07/15 07:22
>>161
作者にメール!
そういうのは、後の人のためにもメーリングリストで聞くべきでは?

163 :デフォルトの名無しさん:03/07/15 07:54
>>160
Mastering Regular Expressions を読むのが吉
ttp://regex.info/
ttp://www.oreilly.co.jp/BOOK/regex2/

164 :デフォルトの名無しさん:03/07/15 08:00
>>163
情報ありがとう!

165 :デフォルトの名無しさん:03/07/15 08:54
>>161

> LICENSE.txtの第3項で質問があるのですが、
LICENSE.txtじゃなくてCOPYING.ja?

 3. 以下の条件のいずれかを満たす時に本プログラムをコンパイ
   ルしたオブジェクトコードや実行形式でも配布できます.

本プログラムってのはRubyのことだから当然Rubyのソース。

> 自分の解釈では、商用向けには向かないと考えていますが、
> 実際のところどうなのでしょうか

Ruby's Licenseは商用でも問題はないはず。
実際アプリケーション組込み用途に使ってるのは何人かいる。
# なぜか海外が多いような。

166 :山崎 渉:03/07/15 09:32

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

167 :デフォルトの名無しさん:03/07/15 10:48
商用、つーか独占的(ソース秘密主義)ソフトウェアね。

3. 以下の条件のいずれかを満たす時に本プログラムをコンパイ
ルしたオブジェクトコードや実行形式でも配布できます.



(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コンパチだから、だそうで。)

あ、ちゃんと過去ログ読んでからにしろよ。

168 :167:03/07/15 10:54
と、書いた後だけど、3.(c)の「オリジナル」という単語は
本当に「改変前のオリジナルRuby」という係り方なのだろうか。

original=「原型の」だからひょっとしたら、
「バイナリに対する原型のソースコード」
ってことになったり。

んーよく分からんっす…

169 :デフォルトの名無しさん:03/07/15 12:10
>>168
以前のruby-listでの議論は不毛だったので、

>あ、ちゃんと過去ログ読んでからにしろよ。

読まなくていいです。


170 :デフォルトの名無しさん:03/07/15 12:12
そういえば、Rubyを組み込んだゲームって話題があったけどどうなったのかな?

171 :デフォルトの名無しさん:03/07/15 21:53
rubyのソースを添付するか入手方法さえ書いておけば
商用ソフトに使うのはなんら問題ないでしょ。

172 :デフォルトの名無しさん:03/07/15 22:00
MLでライセンスを話題にするとるびべん(aka ○zakit)が
しゃしゃり出てきてうざくなる罠。

173 :デフォルトの名無しさん:03/07/16 00:50
>>172
しゃしゃり出てきたところでそのままMorpyOne関係者に引き渡そう。

174 :161:03/07/16 01:45
みなさん、いろいろ教えてくれてありがとう。

> 3. 以下の条件のいずれかを満たす時に本プログラムをコンパイ
> ルしたオブジェクトコードや実行形式でも配布できます.
*いずれか* なんですね。すっかり、見落としていました。

今回の場合は、(c)のケースで問題なく使えそうです。

自分はクローズドソースにするつもりはなくても、
そうせざるを得ない場合がほとんどなのです。
そんなわけで、こういうライセンスは非常に助かります。


175 :デフォルトの名無しさん:03/07/16 02:10
>>174
>>70 >>74 >>75 にも注意。

176 :デフォルトの名無しさん:03/07/16 06:04
>>70 >>74はおそらくあってると思う。
一番の解決策は、非LGPLな正規表現ライブラリである
鬼車(onig...)をregex.[ch]の代わりに使うこと。
FTPのcontrib以下にもあるし、CVSで取って来てもいい。

将来のRubyでは標準で使われる予定のものなので、
すぐにregex.[ch]から乗り換えられるように
現状のRubyとのすり合わせも行われてるっぽいし、
ライセンス問題の解決策としては一番妥当かと。


177 :デフォルトの名無しさん:03/07/16 06:37
普段使ってるのはonigurumaでコンパイルしてある。
たまーに既存のと動作が微妙に違うことがあるが。

178 :176:03/07/16 07:22
from scratch だから、まあそういう時もあるよね。
物にもよるだろうけど、過去に議論されてなくてかつ
影響がそこそこありそうなどの場合、
良い子はMLかkosako氏にメールしませう。

179 :デフォルトの名無しさん:03/07/16 09:26
>>176
あるいは、regex.[ch]を単独の共有ライブラリに分けるとか。

つーかlibrubyごとアプリケーションから分離しておけば、
LGPLには影響されないんじゃないか?

180 :デフォルトの名無しさん:03/07/16 11:03
ところで、もしかして小迫タンって女性?

181 :デフォルトの名無しさん:03/07/16 16:24
>>180
違う。


182 :176:03/07/16 18:21
>>179
そっかそっか、ていうか基本的なとこ忘れてたよ。
「L」GPLじゃん。てことはlibrubyがLGPLの下に置かれたバイナリと
しても、プロプライエタリ(商用)ソフト側と別バイナリにして
librubyをリンクだけする形にすれば、プロプライエタリ側のソースは
LGPLにはなんら影響されない、ってことだよね。
ソースレベルで直にregex.[ch]を丸呑みしなければいいだけの話か。
# 勘違いしてたら突っ込んでくれ、だれか…

183 :デフォルトの名無しさん:03/07/16 18:26
>>181
ども。名前でそうかと思っちゃってた。

184 :デフォルトの名無しさん:03/07/16 20:21
女っ気のないMLだな。

185 :デフォルトの名無しさん:03/07/17 00:55
Ruby ちゃんがいます。
みんなにいじくり回されてます。


186 :デフォルトの名無しさん:03/07/17 22:37
Mac OSXでirbを使うと
カーソルキーを押したときに^[[A ^[[B ^[[C ^[[Dと表示されてしまい
うまくつかえません。
また、Ctrl+Pなども^Pと表示されてしまいます。

もちろん、他のviやシェルやemacsなどでは正常にカーソルキーも
コントールキーも使えます。
Terminal,JTerminal + bash,tcsh,zshなどの組み合わせも試しましたが
全部ダメでした。

どなたか解決方法ご存じの方いらっしゃらないでしょうか?

irb 0.7.4
ruby 1.6.7

187 :デフォルトの名無しさん:03/07/17 23:01
>>186
readline.soがないんでは?



188 :186:03/07/17 23:42
>>187
readline.soが無かったので、
finkのOSXデフォルトじゃないrubyを落としてきたところ
finkのrubyのほうもreadline.soは無かったのですが、
正常に動作するようになりました。

どうもありがとうございます。

189 :デフォルトの名無しさん:03/07/19 00:15
あおきさんみたいにリッチに買い物したいなぁ、、、

190 :デフォルトの名無しさん:03/07/19 01:05
よーし、Opteronで一台組んじゃうぞー。

191 :デフォルトの名無しさん:03/07/19 01:41
\x95\x5c\x94\x5c
みたいな文字列を日本語に変換するにはどうすればいいのでしょうか?

192 :デフォルトの名無しさん:03/07/19 02:22
エヴァれ

193 :191:03/07/19 03:48
もうちょっと詳しく教えて頂けないでしょうか?
evalでやろうにもやり方の見当が・・・

194 :デフォルトの名無しさん:03/07/19 04:24
>>191
こんなんじゃダメ?
require 'uri'
$KCODE = 's'
str = '\x95\x5c\x94\x5c'

p URI.decode(str.gsub(/\\x/, '%'))

195 :デフォルトの名無しさん:03/07/19 04:28
こんなんどうか

str = '\x95\x5c\x94\5c'
puts str.scan(/[0-9A-Fa-f]+/).collect{|x| x.hex}.pack('C*')

196 :194:03/07/19 04:54
195氏の方が3倍以上早いな。
やっぱり、初心者の考え付くことはこの程度だな(w

197 :デフォルトの名無しさん:03/07/19 06:43
src = "\\x95\\x5c\\x94\\x5c" ; dst = eval("%(#{str})")

198 :デフォルトの名無しさん:03/07/19 09:06
>>196
3倍は違わんでしょ
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/,"%"))}'

199 :196:03/07/19 09:12
>>198
そうでつか。わざわざベンチありがとう。

200 :デフォルトの名無しさん:03/07/19 10:49
-ruri ハァハァ

201 :デフォルトの名無しさん:03/07/19 10:53
oriライブラリを作るべきだな

202 :191:03/07/19 14:06
みなさん、どうもありがとうございます。

やり方一つとっても何通りもあるんですね。
非常に参考になりました。

203 :デフォルトの名無しさん:03/07/19 16:06
require すると結構時間かかるよね。

204 :デフォルトの名無しさん:03/07/19 16:23
>>203
いったいいつのマシンを使ってるんだ。

あ、もしかして require の後に毎回 GC するせいかな?
1.8 を使うか、ファイルの数を減らしてみたらどうよ。
1.8 でも bison を使ってビルドしないと GC の回数は
減らないけどね。


205 :デフォルトの名無しさん:03/07/19 21:54
みねたん

206 :デフォルトの名無しさん:03/07/19 21:55
>>205
> みねたん
ぼやいてたね(w

207 :デフォルトの名無しさん:03/07/19 22:03
>>206
あるふぁの後ろの本の山がすごっ

208 :デフォルトの名無しさん:03/07/19 22:51
Riteで継続は

209 :デフォルトの名無しさん:03/07/20 03:20
みねたんハァハァ。。

210 :デフォルトの名無しさん:03/07/20 21:20
>>208
難しいらしい

211 :デフォルトの名無しさん:03/07/20 22:37
なぁなぁ、
文字列をUTF8にエンコするのに、何使えばいい?
uconvのcygwinバイナリ捜したんだけど、なくってさ。

212 :無料動画直リン:03/07/20 22:38
http://homepage.mac.com/miku24/

213 :デフォルトの名無しさん:03/07/20 22:41
http://www.yoshidam.net/Ruby.html#uconv
これじゃだめなのか

214 :211:03/07/20 22:46
>>213
makeの途中で止まっちまうんすよ。
バイナリないっすかね。
もしくはPure Ruby なモヂュール。
ruby 1.6.5 (2001-09-19) [i386-cygwin]
でつ。

215 :デフォルトの名無しさん:03/07/20 23:12
>>214
roughのunkfもmake出来ない?

216 :211:03/07/20 23:16
>>215
CVSwebの使い方がワカラン・・・
すまん。

217 :デフォルトの名無しさん:03/07/20 23:17
>>211

http://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


218 :211:03/07/20 23:18
とおもったらzipがあった。
やってみす。

219 :211:03/07/20 23:24
$ make
gcc -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
やってみます。

220 :211:03/07/20 23:56
解決しますた。
今頃
http://ftp.ruby-lang.org/
の存在を知った。

217さんありがとうございました。

221 :デフォルトの名無しさん:03/07/21 10:08
ActiveScriptRubyでそのまま使えるruby-sumoのパッケージって存在しますか?

222 :デフォルトの名無しさん:03/07/21 16:30
少しrubyからはなれているのですが。。
str = Uconv.euctou8("夏目 漱石")
print str
とすると、"紊 羲援"こんな感じに文字化けします。XML文書中に
含ませるためにはどのような処理をしなければならないのでしょうか。

御面倒ですが、アドバイスをお願い致します。


223 :デフォルトの名無しさん:03/07/21 16:37
出力をどうやって見てるの?

print str の結果を、(utf-8 を理解しない)端末にたれ流してるんだったら、
そんな風に見えるのが当たり前のような。


224 :デフォルトの名無しさん:03/07/21 16:51
>>223
ありがとうございます。御指摘のとおり、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


225 :デフォルトの名無しさん:03/07/21 20:13
全くオッペケペ

226 :デフォルトの名無しさん:03/07/21 21:12
>>225 ですよね(^^;
自分としては、下の例での「E4B887」がほしいんです。
「万」==>unicode:4E07
「万」==>utf-8:E4B887
----
str1 = "万"
str2 = Uconv.euctou8(str1)
print str2 <-これじゃダメです。

227 :デフォルトの名無しさん:03/07/21 21:13
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
★☆                       
☆★ 送料激安!!  送料激安!!  送料激安!!
★☆      http://www.get-dvd.com      
☆★  激安アダルトDVDショップ        
★☆    お買い得セール1枚500円〜980円!急げ!
☆★    インターネット初!「きたぐに割引」  
★☆    北海道・東北の皆様は送料も激安!   
☆★      http://www.get-dvd.com      
★☆        スピード発送!        
☆★      http://www.get-dvd.com      
★☆        商品が豊富!         
☆★      http://www.get-dvd.com      
★☆                       
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆   

228 :デフォルトの名無しさん:03/07/21 21:34
rubyで作った拡張ライブラリではないプログラムの
インストーラは、何を使うべきですか?

229 :228:03/07/21 21:39
日本語が意味不明だったので訂正します。

rubyで書いたスクリプトのインストールには、どのような
インストール方法を用いるのが一般的でしょうか?

230 :デフォルトの名無しさん:03/07/21 22:03
>>226
だからあ、表示できないのは端末の問題でしょ。
何が欲しいのか分からんが、下を実行して出来る 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

231 :デフォルトの名無しさん:03/07/21 22:09
>>229
一般的かどうか知らんが
漏れはふつーに autoconf/automake でつ

232 :デフォルトの名無しさん:03/07/21 22:58
>>229
標準となってるような方法は *ない*

一般的なのは
* >>231 みたいに autoconf/automake
* 自作スクリプト
* 手でコピってね ♥
など……だと思うけど、もしかしたら install.rb / setup.rb がよく使われ
てるのかもしんない。ぐぐってみて。


233 :デフォルトの名無しさん:03/07/21 23:20
>>230
ありがとうございます。

欲しかったのは、string.unpack("H*")です。
「16進文字列でアンパックした要素の列」(google)ということだったのかな?

234 :デフォルトの名無しさん:03/07/22 10:47
予想外のオチ。

235 :デフォルトの名無しさん:03/07/22 13:11
stdout, stderr を /dev/null に吐かせつつ
popen するにはどうしたらいいのでしょうか?

236 :デフォルトの名無しさん:03/07/22 14:56
>>235
質問の意味がよくわからないのですが、 Open3 が参考になりますか?

237 :デフォルトの名無しさん:03/07/23 02:53
正規表現で質問です。以下の式はどういうことを表現していますか?
/^Giko:/i

238 :_:03/07/23 03:09
http://homepage.mac.com/hiroyuki44/jaz10.html

239 :デフォルトの名無しさん:03/07/23 04:42
>>235
command > /dev/nullでいいと思いますが。

240 :デフォルトの名無しさん:03/07/23 04:42
stderrもか・・・

241 :デフォルトの名無しさん:03/07/23 05:34
>>237
Giko:が行頭にあるi???

242 :デフォルトの名無しさん:03/07/23 05:45
>>237
giko:
gikO:
giKo:
giKO:
gIko:
gIkO:
gIKo:
gIKO:
Giko:
GikO:
GiKo:
GiKO:
GIko:
GIkO:
GIKo:
GIKO:

243 :235:03/07/23 09:43
>>236
open3 は見てもよく分かりませんでした。

>>239
ありゃ、そんな単純なので ok だったんですね。
stderr も捨てるのは >/dev/null 2>&1 でいけました。
みなさんありがとう。

244 :196:03/07/23 13:18
WinXPでRubyを使っています。
コンソールで、文字の色を変えたり、同じ行を書き換えたりするにはどうすればいいでしょうか。
どなたかよろしくお願いします。

245 :244:03/07/23 13:20
しまった、名前欄が・・・
>>196氏とは関係ありません。

246 :デフォルトの名無しさん:03/07/23 22:46
>>244
Rubyと関係ねーだろ

247 :デフォルトの名無しさん:03/07/23 23:13
いや、「それはRubyの問題じゃない」という関係がある

248 :244:03/07/23 23:17
>>246
すれ違いすいませんでした。
Rubyで試したらうまくいかなかったので、Rubyのせいにしてしまいました。
Cでもダメでした。じゃぁ、XPのコンソールが悪いのか。
適切なスレを探してみます。ご迷惑をおかけしました。

249 :デフォルトの名無しさん:03/07/24 00:21
\windows\system32\config.nt に

device=%SystemRoot%\system32\ansi.sys
dosonly

を追加したらANSIのエスケープシーケンスが使えるんでない?

250 :244:03/07/24 01:50
>>249
残念ながら解決できませんでした。
スレ違いなのにレスをありがとうございました。

251 :244:03/07/24 02:22
Mingwと一緒にインストールしたMSYSのことをすっかり忘れていました。
MSYSのrxvt上で実行することで、エスケープシーケンスが解釈されました。
お騒がせしました。

252 :デフォルトの名無しさん:03/07/24 17:45
ようやくpreview4。

253 :デフォルトの名無しさん:03/07/24 21:15
>>252
shim まだぁ?

254 :デフォルトの名無しさん:03/07/24 22:30
いろいろと押してるからshimまで手が回らない。

255 :デフォルトの名無しさん:03/07/26 01:14
これでバグが見つかなかったら正式リリースだね。
ruby-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 文書の操作

256 :デフォルトの名無しさん:03/07/26 01:25
lib/README が更新されてないね。

== ext 配下
・bigdecimal : 任意桁数の小数点演算
・dl : ダイナミックリンカへのインタフェース
・iconv : I18N 文字列変換
・io/wait : ノンブロックな wait
・openssl : openssl ラッパ
・stringio : IO みたいに使える String
・strscan : 高速文字列スキャナ
・syck : YAML 読み書きライブラリのラッパ yaml で使用
・zlib : zlib を使った gzip データ操作

257 :255:03/07/26 09:24
255 は全然嘘だった。ちゃんと dev を読めと。

7/28 preview5 → preview6 ? → 7/30-/7/31 正式リリース予定?
今月中にリリースするつもりなのかな?

258 :デフォルトの名無しさん:03/07/26 13:25
さらにメモ。
RubyForge 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/ のクライアント。リリースなし。

259 :デフォルトの名無しさん:03/07/26 13:41
>>255
ruby-dev見始めたの最近なのでサンクス。


260 :デフォルトの名無しさん:03/07/26 16:48
xmlparser 入って欲しいなぁ。

261 :デフォルトの名無しさん:03/07/26 21:51
最近 Smalltalk をやって、
Ruby ならではの機能と思っていたものの多くが
Smalltalk のパクリなのに気づいて
こんなんだったら最初から Smalltalk やっときゃよかった
という気持ちでいっぱい。

262 :デフォルトの名無しさん:03/07/26 22:00
前から Perl の見た目の Smalltalk と呼ばれてたじゃん。

263 :デフォルトの名無しさん:03/07/26 22:48
>>257
Mac OS Xの次バージョンに入る〆切らしい。

264 :デフォルトの名無しさん:03/07/26 23:14
>>263
Appleに感謝したいな。
そういう外圧的〆切がなければ、まだまだ当分リリースされなかったに
違いない。

265 :デフォルトの名無しさん:03/07/26 23:26
昔のC magazineを図書館で見つけたのでちょっと見てみたら、
Javaに関してequalsはidenticalならばよかったのに、と触れてあるコラムがあった。
やっぱりそういうことを考える人は多いんだろうか。

266 :デフォルトの名無しさん:03/07/27 00:48
hash = Hash.new([])

(1..16).each do |i|
 hash[i].push i
end

p hash #=> {1 => [1], 2 => [2], ..., 16 => [16]}

だったら嬉しいのですが(ver1.6)。
v1.8ではどうなってますか?

267 :デフォルトの名無しさん:03/07/27 01:20
>>264
同意。バグはいくらでも見つかるもんだから、
適当なとことで踏ん切りをつけないと。。。

>>266
ブロックを指定してやると、ブロックの評価値がデフォルト値になる。
http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=Hash#Hash.2enew_2

268 :デフォルトの名無しさん:03/07/27 05:50
しかし、単にpushしただけだとそのまま捨てられてしまう罠。

hash = 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

後者は、存在しないキーにアクセスしただけで追加されてしまうという、
副作用があるけど。

269 :デフォルトの名無しさん:03/07/27 18:26
imlib2-rubyでマルチバイトの文字を描画するって
できるんですかね?

270 :デフォルトの名無しさん:03/07/28 03:13
"_x\n_x1,1_x,_x,_x_x:_x\n_x" の中にある _x をRubyのローカル変数名と
みなして "(_x)\n_x1,1_x,(_x),_x_x:(_x)\n(_x)" に置換する方法を教えてください。
ただし、文字列全体を置き換えるのは、なしです。

271 :デフォルトの名無しさん:03/07/28 04:08
>>270
置換された結果として何を望んでいるのかが分からない。
その方法を foo(str) として

_x = "X"
str = "_x\n_x1,1_x,_x,_x_x:_x\n_x"
p foo(str)

の出力には何を期待しているのか?

272 :デフォルトの名無しさん:03/07/28 04:38
>>270
こゆこと?
"_x\n_x1,1_x,_x,_x_x:_x\n_x".gsub(/\b(_x)\b/) { "(#{$1})" }

273 :デフォルトの名無しさん:03/07/28 05:04
正規表現の後ろにmが付いているのは何か意味あるんですか?

274 :デフォルトの名無しさん:03/07/28 05:26
>>273
それは正規表現のオプションで、複数行モードで処理しろってこと。
複数行モードだと正規表現のピリオド(".")が改行にもマッチするようになる。
/.+/は一行にマッチする
/.+/は全行にマッチする

例:
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


275 :デフォルトの名無しさん:03/07/28 05:59
/.+/は全行にマッチする

/.+/mは全行にマッチする
ですよね。

276 :274:03/07/28 06:25
>>275
スマソ。その通りです。

277 :270:03/07/28 12:20
>>272
それで置換できるのかー。
Emacs の replace-regexp で \b\(_x\)\b を (\1) に
置換するとなぜか "_x\n_x1,1(_x),_x,_x(_x):_x\n(_x)" に
なってしまって、Rubyも同じだと思ってた。

278 :270:03/07/28 17:25
>>277
自己レスですがEmacsは構文テーブルに左右される
ようだからRubyと同じには、ならないですね。

279 :デフォルトの名無しさん:03/07/28 17:39
preview5 出た。


280 :デフォルトの名無しさん:03/07/28 20:35
Array#sortって安定じゃないよね。

ぐぐった程度ではみつからなかったんだが
安定なsortってない?

281 :デフォルトの名無しさん:03/07/28 20:52
自分で書いて Array に定義すれ。

282 :デフォルトの名無しさん:03/07/28 21:08
それしたヤシいたら楽できるかと思ったが。
やっぱ書くか。

つか、rubyのmlで3年前に話がでてるが結局だれも
しなかったのな。

283 :デフォルトの名無しさん:03/07/28 23:05
>>280

1.8ならEnumerable#sort_byが使える。

http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=Enumerable#sort_by


284 :デフォルトの名無しさん:03/07/29 12:21
>>280
1.6 なら大人しく Schwartzian Transform しとけ。


285 :デフォルトの名無しさん:03/07/29 12:25
安定 ソート
ttp://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待ちになる罠なのか?

286 :デフォルトの名無しさん:03/07/29 12:53
class Array
  def 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

287 :デフォルトの名無しさん:03/07/29 15:08
今使ってるのは1.6.7だけど、
下のコードは最新だとエラーなしで通る?

def a; *(0..2); end; p a #=> parse error

288 :デフォルトの名無しさん:03/07/29 16:29
>>287

% 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


289 :デフォルトの名無しさん:03/07/29 17:35
>>287
それはどう動く (動いて欲しい) コードなの?

290 :デフォルトの名無しさん:03/07/29 21:55
>>288

def a
(0..2).to_a
end

p a #=> [0, 1, 2]

こういうことか?


291 :デフォルトの名無しさん:03/07/29 21:59
Schwartzian Transform したからといって stable になるわけじゃあるまい?

292 :デフォルトの名無しさん:03/07/29 22:05
> Enumerable#sort のソートアルゴリズムは安定(stable) ではありませんが(比
> 較結果が同じ要素に対して、元の順序を保持しないことを「安定ではない」と
> 言います)、sort_by を使って以下のようにすることで stable sort を実現で
> きます。
>
> i = 0
> ary.sort_by {|v| [v, i += 1]}

293 :287:03/07/30 00:00
>>288
なんだ、ダメじゃん。
まぁ、何かの理由で *(0..2) という表記は戻り値として使えないから
>>290のように to_a にしとけということかな。
とはいえ、下のように return を付けるとエラーにならないのが謎。

def a; return *(0..2); end; p a #=> [0,1,2]

294 :デフォルトの名無しさん:03/07/30 01:07
$ ruby -ve '*(0..2)'
ruby 1.8.0 (2003-07-28) [i386-cygwin]
-e:1: syntax error


295 :デフォルトの名無しさん:03/07/30 01:47
>>293
引数とそうでないものは違う。

$ ruby -ce 'foo a,b'
Syntax OK
$ ruby -ce 'a,b'
-e:1: parse error

296 :デフォルトの名無しさん:03/07/30 02:00
>>293
で、それがエラーになると何かまずいことでもあるの?

297 :デフォルトの名無しさん:03/07/30 07:16
ていうか *(0..2) って何

298 :287:03/07/30 11:07
returnを特殊な構文のように考えていたけど、
普通にreturnの「引数」だから *(0..2) と書けるわけか。

299 :デフォルトの名無しさん:03/07/30 11:28
>>297
>>287 みたいなキチガイはほっとけ。

300 :デフォルトの名無しさん:03/07/30 11:56
>>291
ようするに286みたいにeach_with_indexと併用ってことじゃない?


301 :デフォルトの名無しさん:03/07/30 12:21
ふつーの MSYS でふつーに mingw 版を作ろうとすると、
openssl_missing.c でエラーになるなあ (1.8.0 preview5)。
OpenSSL 入れろってこと?


302 :デフォルトの名無しさん:03/07/30 12:37
>>301
CVS上ではもう直ってる。

303 :301:03/07/30 16:58
>>302
おお、情報サンクス。対応早いですね。
MSYS 1.0.9 からは rxvt 上で普通にビルドできるようになってウレスイ。


304 :デフォルトの名無しさん:03/07/31 11:23
#!/usr/bin/ruby
str='表'
if str =~ /表/ then
puts 'OK'
end

↑これマッチしないの、なんでだろ〜?


305 :デフォルトの名無しさん:03/07/31 11:28
文字コードが Shift_JIS && $KCODE を指定してないと見た


306 :デフォルトの名無しさん:03/07/31 11:31
#!/usr/bin/ruby -Ks

str='表'
if str =~ /表/ then
puts str
end

ごめんなさい

307 :デフォルトの名無しさん:03/07/31 12:13
>>306 はうまくいくのですが、

#!/usr/bin/ruby
$KCODE='SJIS'
str='表'
if str =~ /表/ then
puts str
end

はだめです。どうしてですか?


308 :デフォルトの名無しさん:03/07/31 13:47
>>307
リファレンスマニュアル FAQ 10.2 「オプション-K と $KCODE の違いはなんですか?」を参照。l

309 :デフォルトの名無しさん:03/07/31 14:41
>>308
そのまんまの答えですね。
調べずに書き込みしてごめんなさい。

310 :デフォルトの名無しさん:03/07/31 17:55
preview6 releaseされたようだ。

311 :デフォルトの名無しさん:03/07/31 23:46
マジで8/1(遅くて8/4)に1.8.0出す気?


312 :デフォルトの名無しさん:03/07/31 23:59
>>311
8/1にpreview7、8/4に正式リリース。

313 :デフォルトの名無しさん:03/08/01 05:53
なんで Ruby って feature freeze とかしないの?

314 :デフォルトの名無しさん:03/08/01 07:30
>>313
してる。matz日記参照。
ただ、freeze後もいくつか変更がはいった。

315 :デフォルトの名無しさん:03/08/01 09:35
>>314
情報をよく集めているデベロッパだけfeature freezeされて、空気読まない連中は
feature freezeされない罠。
やっぱりリリースエンジニアリングが(ry

316 :山崎 渉:03/08/02 02:09
(^^)

317 :デフォルトの名無しさん:03/08/02 04:36
BigDecimal使ってる奴、議論に参加してやれよ。
俺は使ったことないのでわからんが。


318 :デフォルトの名無しさん:03/08/02 08:33
>>317
ttp://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/ext/bigdecimal/bigdecimal_ja.html?rev=HEAD
読んでみる?

319 :デフォルトの名無しさん:03/08/02 13:44
Windows上で、RubyでGUIを作ろうと思ったら何がいいんだろう?
Ruby/tk? Apollo?

320 :デフォルトの名無しさん:03/08/02 14:49
>>319
Ruby/GTK2

321 :デフォルトの名無しさん:03/08/02 15:06
>>319
VisualuRuby


322 :デフォルトの名無しさん:03/08/02 15:38
>>319
こっそり wxruby に期待

323 :デフォルトの名無しさん:03/08/02 16:03
Ruby/GTK と Ruby/GTK2 は何が違うんだ?

324 :デフォルトの名無しさん:03/08/02 16:34
Gtk1.xベースとGtk2.xベース。

325 :デフォルトの名無しさん:03/08/02 16:36
FOXRuby

326 :デフォルトの名無しさん:03/08/02 16:39
前から疑問に思ってたんだけど、

Ruby/GTK
   ↑
この単語間のスラッシュは何?

327 :デフォルトの名無しさん:03/08/02 16:43
区切り

328 :デフォルトの名無しさん:03/08/02 16:53
割り算

329 :デフォルトの名無しさん:03/08/02 17:03
別居中

330 :デフォルトの名無しさん:03/08/02 18:14
左側が右側にもたれかかってる


331 :デフォルトの名無しさん:03/08/02 18:23
Rubyなれなれしいな

332 :デフォルトの名無しさん:03/08/02 18:24
バトル!

333 :デフォルトの名無しさん:03/08/02 22:59
>>326
斬新な質問だな。

334 :デフォルトの名無しさん:03/08/03 00:00
Ruby☆GTK


335 :デフォルトの名無しさん:03/08/03 00:28
withではなかろうか。
あたかもcall with current continuationがCall/CCになるように。

336 :デフォルトの名無しさん:03/08/03 01:38
特異メソッドを使うかサブクラシングするかはスタイルの問題ですか?
両者にパフォーマンス等でトレードオフがあれば教えて下さい。

337 :デフォルトの名無しさん:03/08/03 07:35
パフォーマンスを知りたいなら自分で計ってみるのが
一番納得する方法だよ。
なんでもかんでも人に聞いちゃいかんよ。

338 :デフォルトの名無しさん:03/08/03 08:00
>>335
そーか。「×× with 〜」または「×× using 〜」とも解釈できるな。
あと、分数棒として読めば「×× over 〜」になる。

339 :デフォルトの名無しさん:03/08/03 09:02
G/W とか H/W とかの / の意味がわからん。

340 :デフォルトの名無しさん:03/08/03 14:19
I/F、I/O

341 :デフォルトの名無しさん:03/08/03 15:10
左の人が右の人を棒で叩いてる図


342 :デフォルトの名無しさん:03/08/03 19:39
ガッ/ヌルポ

343 :デフォルトの名無しさん:03/08/03 20:08
ガッ bashes ヌルポ

344 :デフォルトの名無しさん:03/08/03 20:09
んじゃRuby/Pythonとか

345 :デフォルトの名無しさん:03/08/03 20:59
require "delegate"

class C < SimpleDelegator
def initialize
super("A")
end
end

Marshal.dump(C.new)

> `dump': singleton can't be dumped (TypeError)

なぜ?

346 :デフォルトの名無しさん:03/08/03 21:09
>>345
dump して load したら dup したことになるからでは。

347 :デフォルトの名無しさん:03/08/04 04:59
BigDecimalは unix板ぐらいでしかネタにされてないか。

348 :デフォルトの名無しさん:03/08/04 07:21
そうでし

349 :デフォルトの名無しさん:03/08/04 15:29
なんか、Ruby 関連スレはそれぞれうまくネタが住み分けされてるね。
スレタイや板とは無関係に。

350 :デフォルトの名無しさん:03/08/04 18:50
>>349
こことUNIX板以外にもあるの?



351 :デフォルトの名無しさん:03/08/04 19:23
ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.0.tar.gz

352 :デフォルトの名無しさん:03/08/04 19:46
とりあえず、祝リリース!

353 :デフォルトの名無しさん:03/08/04 21:12
>>342
ヌルポ rescue ガッ
だろう。

354 :デフォルトの名無しさん:03/08/04 21:43
>>334
つのだ/ひろ

355 :デフォルトの名無しさん:03/08/04 22:34
>>350
349じゃないけど私が知っている現行スレ(駄スレを除く)は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/

356 :デフォルトの名無しさん:03/08/04 22:43
>>355
> Rubyの実装に疑問あり!
> http://pc2.2ch.net/test/read.cgi/tech/1004873294/
これはもう駄スレじゃん?

357 :デフォルトの名無しさん:03/08/04 22:48
Ruby 1.8.0 mswin32用もリリースされました。

http://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
スレの頭の部分はタイトルどおりに内部構造の話をしているので一応入れました。
確かに今は個人叩きスレになっていますね。もったいなーい。

358 :デフォルトの名無しさん:03/08/05 01:10
1.8.0リリース記念age

359 :デフォルトの名無しさん:03/08/05 09:56
if $_ =~ /(\:)(\d+)\:/
 $_.sub!(/\:\d+\:/, "(#{$2}):")
end

をsub一回に書き換えられませんか?
ifのチェックをしないとsubの行の$2に値がセットされません。

360 :デフォルトの名無しさん:03/08/05 10:57
s.sub!(/(\:)(\d+)\:/, '(\2):')


361 :デフォルトの名無しさん:03/08/05 17:41
$_.sub!(/\:(\d+)\:/) {"(#{$1}):"}
じゃダメ?

362 :デフォルトの名無しさん:03/08/05 17:44
Rubyをベンチしてるサイトどっかにない?
なにか表現がおかしいけど気にしない。

363 :デフォルトの名無しさん:03/08/05 17:47
>>357
irb.bat実行するとreadline.dllが無いって怒られるんですが、
何処から拾ってくるの?

364 :デフォルトの名無しさん:03/08/05 17:54
>>363
http://gnuwin32.sourceforge.net/packages/readline.htm

365 :デフォルトの名無しさん:03/08/05 19:25
>>364
肝心のdllがどこにも見当たらないんですが・・・

366 :デフォルトの名無しさん:03/08/05 19:34
>>365
MinGW pre7 のやつ使ってるけど大丈夫ぽい

367 :デフォルトの名無しさん:03/08/05 19:40
るびきちのirbshの本買って、本の通りにインストールしたけど
NameError: uninitialized constant Irbsh とエラー出て
まったく動作しませんが、何か?

368 :デフォルトの名無しさん:03/08/05 19:49
>>365
ttp://jarp.jin.gr.jp/win32/ とか。

369 :デフォルトの名無しさん:03/08/05 19:54
>>368
それでokでした。
ありがとう。

370 :デフォルトの名無しさん:03/08/05 19:59
>>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>
何ででしょう?

371 :デフォルトの名無しさん:03/08/05 20:39
>>370
スタックが足りないから。

372 :デフォルトの名無しさん:03/08/05 20:56
スタックを増やす方法をおしえてください。

373 :デフォルトの名無しさん:03/08/05 22:06
今cgiとしてRubyプログラムを走らせるとして
クライアント(UNIX系OS)のディレクトリ構造をWEBに吐き出させようと
したらどうしたらええでしょうか??

374 :デフォルトの名無しさん:03/08/05 22:07
(゚Д゚)ハァ?

375 :デフォルトの名無しさん:03/08/05 22:11
hoge.cgiに

#!/usr/local/bin/ruby

# 今このファイルを実行したクライアントのディレクトリ構造
# を出力する

みたいな処理はできないのですか?という意味です。



376 :デフォルトの名無しさん:03/08/05 22:12
puts `ls`

377 :デフォルトの名無しさん:03/08/05 22:14
それは、サーバ上のディレクトリしかわからんと思います・・・

’クライアントの’が表示したいのです。

378 :デフォルトの名無しさん:03/08/05 22:16
クライアントからディレクトリ構造を送ってもらうcgiを作る。
というかね、サーバ側がどう頑張っても無理。

379 :デフォルトの名無しさん:03/08/05 22:18
>>377
そういう大事なことは始めから書いた方がよい返事がもらえますよ。
このやりとりで、論点がすっきりしました。

クライアント/サーバを一から理解しろクズ! 氏ねや夏廚

380 :デフォルトの名無しさん:03/08/05 22:21
スッタクを動的にどんどん増やしたいぞな。

381 :377:03/08/05 22:26
理解した上で、できないかと思ったので・・・
クライアントでディレクトリ構造のデータを取得する
Rubyプログラムを動かしておいて、サーバ側に送るってやるしか
無理なのかなぁ〜?

ActiveXとかを使わないと駄目なのかな?



382 :377:03/08/05 22:41
>>378
本当に無理なのか・・・?
できそうな気はするんだけど。

383 :デフォルトの名無しさん:03/08/05 22:43
XML-RPC を使えば。

384 :377:03/08/05 22:45
それでも、クライアントにWEBサーバいれとかないと駄目ではない?
どっちにしてもサーバアプリかクライアントアプリをクライアント
に常駐させておかないと、実現不可能ですかね。。。


385 :デフォルトの名無しさん:03/08/05 22:49
>>377
クライアント側で情報垂れ流すI/Fがないと無理だと言ってるの。
それにRubyと全く関係ない。

386 :デフォルトの名無しさん:03/08/05 22:49
httpクライアントがディレクトリリストをpostするだけだろ。
てかcgiにこだわる必要があるのか。単なるsockアプリじゃ駄目なのか。
セキュリティのことはちゃんと考えてるのか。

387 :デフォルトの名無しさん:03/08/05 22:50
むしろ情報を抜く CGI が作りたいんでないの。

388 :377:03/08/05 22:57
>>385
Rubyと全く関係ないというのはわかりますが、Rubyでプログラミング
したいと思ってこのスレに書き込みしました。

sockアプリでは駄目で、理由はそのsockアプリを配布して実行
しないといけないからです。

私が真にやりたいことは、ディレクトリリストを表示するだけでなくて
クライアントのあるディレクトリに目的のファイルがあるかどうか
までcgi側から調ることです。そのためには先ずディレクトリリスト
をクライアントから返すようなプログラムをcgi側から送れないか
と思ったのです。(cgiの構造はおおむね理解した上で)

セキュリティのことはこの際考えません。ActiveXのように、悪意
あるコードをクライアント側に流すような処理をするつもりは
ないです。


389 :デフォルトの名無しさん:03/08/05 23:03
スレ違い+板違い。
ActiveX知ってるなら、それでやればいいじゃん。

390 :377:03/08/05 23:05
>> 389
ActiveXは詳しくないのです。だから、それと似たような機能が
Rubyでできればと。



391 :377:03/08/05 23:08
>>389
ちなみに、クライアントはUNIX-OS対象なので、ActiveXでは
駄目なのです。

392 :デフォルトの名無しさん:03/08/05 23:09
↑だから、その実現方法はRubyと全く関係ないでしょ?
多分ね、RubyだとCで拡張モジュール作るはめになるよ。
結論としてcgiとしては実現不可能。
ここで粘着しても無駄だから、Web板とか行って。

393 :デフォルトの名無しさん:03/08/05 23:12
Ruby的にはクライアント側にdrbオブジェクト
仕込ませて待機させて遠隔操作するのがよし。

394 :デフォルトの名無しさん:03/08/05 23:18
普通に実行プログラム配布してチェックさせればいいじゃん。

395 :デフォルトの名無しさん:03/08/05 23:19
>>392
関係ないけど、Cで拡張モジュール作れても全然嬉しくないよな。


396 :デフォルトの名無しさん:03/08/05 23:22
あつくなると、おおいですね。

397 :デフォルトの名無しさん:03/08/05 23:27
>>395
速度が速いよ。

398 :デフォルトの名無しさん:03/08/05 23:29
まぁRubyがcgiへのディレクトリリスト送信ライブラリを備えていないのは不備と言えなくもないな。

399 :デフォルトの名無しさん:03/08/05 23:38
>>397
cgiとかで公開できないじゃん。
環境依存だし。

400 :デフォルトの名無しさん:03/08/05 23:38
Rubyはうんこ

401 :377:03/08/05 23:39
>>302
Web板でも聞いてみます、不慣れな書き込みですいません。
Cで拡張モジュール…挑戦したい…具体的にはどのような
拡張モジュールにするべきでしょうか?

>>393
Ruby的にはdrb使うのが目的の処理ができそうですね。(WEBサーバ
仕込ませるのと似ているけれども、こちらのほうが軽く、速く
処理ができそう かつ しこませやすそう)

drbをつかった処理考えてみます。

402 :デフォルトの名無しさん:03/08/05 23:43
つまりバックドア作りたいんだろ?そうなんだろ?
MLで詳しく教えてやるよ。

403 :377:03/08/05 23:52
>>402
バックドアじゃないけど・・・それに近いといえば近い。

404 :デフォルトの名無しさん:03/08/06 01:57
今後 >>359 みたいな超 FAQ (sub, gsub で $1, $2, ... が参照できない) を防ぐにはどうすればいいですか?


405 :デフォルトの名無しさん:03/08/06 01:59
sub(//, '') を廃止して sub(//) {} のみにするといいと思います。

406 :デフォルトの名無しさん:03/08/06 07:02
Ruby 1.8.0 の変更点を日本語訳してみた。
http://kwatch.tripod.co.jp/ruby/changes180.html
読みにくいかもしれんが、まあ我慢してくれ。

407 :デフォルトの名無しさん:03/08/06 08:03
>>406
冒頭の訳注内 「語感想」→「ご感想」

to_strの説明「新しいメソッドto_strが...として扱います。」→
 「to_str()が定義されているオブジェクトを文字列とみなして取得するようになりました。」



408 :デフォルトの名無しさん:03/08/06 08:39
>>406
訳注に突っ込んでも仕方ないが、
sprintfの"%p"フォーマットはinspect()による文字列化だぞ。

409 :デフォルトの名無しさん:03/08/06 08:52
>>404
リファレンスのsub, gsubの項にサンプルコードと備考を追加するのがいいと思います。

410 :デフォルトの名無しさん:03/08/06 10:26
>>409
gsubの項に既に書いてあるんだが。

411 :デフォルトの名無しさん:03/08/06 11:35
1.8.0バグだらけじゃん。
あれだけpreview出しておきながら何やってんだか。

メンテナンスリリースとは言わず、さっさと1.8.1きぼん

412 :デフォルトの名無しさん:03/08/06 12:04
このコードはヤバイ、
んまぁぁぁぁああああ!!
まぎゅぃぃいいぬぇえぇぃいいいいいいいいいいいいい!!
しんにゅうするつぼりゅえでえああああさあぁぁあぁぁぁああああ!!!


413 :デフォルトの名無しさん:03/08/06 12:38
スラドに垂れ込む香具師はいないのか。


まあ、叩かれるのは目に見えてるが。

414 :デフォルトの名無しさん:03/08/06 12:43
>>406
String/Array methods
Returns an instance of receivers class.
レシーバであるインスタンスのクラスを返します。〔訳注:???〕

レシーバのクラスのインスタンスを返します。

recievers は reciever's の typo かな?
破壊的メソッドも self を返すという意味だと思うけど違うかな?

415 :デフォルトの名無しさん:03/08/06 12:54
>>414
「サブクラスのインスタンスのメソッド呼んだら、そのサブクラスのインスタ
ンスが返ってくる」みたいにも取れるかも。


416 :デフォルトの名無しさん:03/08/06 17:03
1.8.0って1.6.8より処理おそくなってない?

417 :デフォルトの名無しさん:03/08/06 18:04
>>416
なってない。

418 :デフォルトの名無しさん:03/08/06 18:07
>>416
まずは profile とってボトルネック調べれ。

419 :デフォルトの名無しさん:03/08/06 18:13
www.cygwin.com/setup.exeのrubyはいつ1.8になるの?

420 :デフォルトの名無しさん:03/08/06 18:40
そうかRuby減速か。ニヤリ

421 :デフォルトの名無しさん:03/08/06 21:05
質問してもいいですか?
複数のスレッド間でオブジェクトを共有したいのですが、どうすれば共有できますか?

422 :デフォルトの名無しさん:03/08/06 22:09
"foo bar".split / /
が構文エラーで上手く行かない。
rx = Regex.new " "
"foo bar".split rx
の意味で動いてくれるとうれしいんだが。

423 :デフォルトの名無しさん:03/08/06 22:15
http://slashdot.jp/comments.pl?sid=112000&cid=372237
2倍ってことはないと思うが、たしかに1.8 は結構速くなっているよ。

424 :デフォルトの名無しさん:03/08/06 22:21
web用途でphpに対するアドバンテージって何かあるの?

425 :デフォルトの名無しさん:03/08/06 22:53
1.8では正規表現の
\zと\Zが同じ意味になった気がするんですが、
片方しかマッチしない例とか教えてください。

426 :デフォルトの名無しさん:03/08/06 23:01
/(.*?)\z/m =~ "a\n"
p $1
# => "a\n"

/(.*?)\Z/m =~ "a\n"
p $1
# => "a"


427 :デフォルトの名無しさん:03/08/06 23:08
>>421
Mutex

428 :デフォルトの名無しさん:03/08/06 23:13
>>426
ばかだったもっと簡単に考えなイカン

p /a\z/ =~ "a\n" # => nil
p /a\Z/ =~ "a\n" # => 0


429 :425:03/08/06 23:14
>>426
どうも、ありがとうございます。
でも、mオプションが出てきて、なんか余計ややこしくなってきた。。

結局、1.6と1.8で $ , \Z が どう変わったのか、
わかりやすく教えてもらえないでしょうか?


430 :デフォルトの名無しさん:03/08/06 23:41
>>406
感謝

431 :デフォルトの名無しさん:03/08/06 23:59
>>429
> >>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 は文字列末尾にしかマッチしません。
文字列末尾に改行がなければ同じです。


432 :429:03/08/07 00:02
>>431
とてもよくわかりました。
ありがとうございました。

433 :429:03/08/07 00:21
全くの初心者なんで、おかしなこと言ってるかもしれませんが
1.6から1.8での >>431 に書いてあるような変更って
$の方は理解できますが、\Z の方は、なんか変な感じですね。

"\nが文末にあると、もう一行増えたと考えることにした。"
ということなら、$の変更は理解できます。

しかし、最後に改行がある時、\Zが2箇所でマッチするように変更されたのは、
なんか気持ちわるいですね。
\Zを文末と捉えてはいけなくなった気がします。
本当に特別な表現になったような気がします。

みなさんは、どう思いますか?


434 :デフォルトの名無しさん:03/08/07 00:58
>>424

使うのが数値、文字列、配列、ハッシュぐらいなら、PHPと比べて
特にうれしいということはないだろう。
Rubyを使ってうれしくなるのは、オブジェクト指向をバリバリ
使うとき。自分でクラスをバシバシ定義するようなプログラムだと
Rubyはとってもうれしい。

フロントエンドはあまり難しいことしないからPHPでもいいけど、
バックエンドで複雑なビジネスロジックを作り込む場合は、
どうしてもクラスを定義することが多いから、Rubyのほうが楽。
そうなると、フロントエンド側もRubyで揃えたくなる。
おいらはそれで全部Rubyにした。

435 :デフォルトの名無しさん:03/08/07 01:05
>>433
話の発端

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

非互換覚悟で他の言語に合わせたんだから
また元に戻すようなことがありませんように。


436 :429:03/08/07 01:22
>>433 で書いた
"\nが文末にあると、もう一行増えたと考えることにした。"
これ、おかしいですね。
^が増えた行頭にマッチしませんね。
失礼しました。

1.6の方がわかりやすいな。
まあ、Perlとかに合わせたってことで、歓迎すべきなんでしょうが。。

437 :デフォルトの名無しさん:03/08/07 02:04
visualurubyをちゃんと1.8に対応させてホスィ
exerbの1.8.0コアも欲しー

438 :デフォルトの名無しさん:03/08/07 03:01
るびーおっそーい!

439 :デフォルトの名無しさん:03/08/07 04:24
class C
def 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 がないのはなぜ?

440 :デフォルトの名無しさん:03/08/07 05:34
>>439
> ↑これを簡単に書くための attr_accessor がないのはなぜ?

いらないから。

どうしても attr_accessor で定義したいなら

class C
class <<C
attr_accessor :var
end
end

とか


441 :デフォルトの名無しさん:03/08/07 08:34
rubyのソースはインデントがナイト激しく見づらい!

442 :デフォルトの名無しさん:03/08/07 09:58
インデントされてるじゃん、と思ったら navi2ch で見てるからか。


443 :デフォルトの名無しさん:03/08/07 09:59
大丈夫Pythonよりは読める

444 :デフォルトの名無しさん:03/08/07 11:18
>>443 不覚にもワラタ

445 :デフォルトの名無しさん:03/08/07 14:16
>>441
インデントなしでも見やすい言語ってあるんか?
Prolog とか?


446 :デフォルトの名無しさん:03/08/07 15:42
N88BASIC

447 :デフォルトの名無しさん:03/08/07 16:48
それはインデントあっても見づらい言語。

448 :デフォルトの名無しさん:03/08/07 17:37
Ruby 1.6.xからの変更点(日本語、8月7日現在鋭意編集中)
http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=changes.1.8.0.ja

449 :デフォルトの名無しさん:03/08/07 17:44
本でないの?

450 :デフォルトの名無しさん:03/08/07 18:13
>>445
もちろん本物のプログラマが使うFORTRAN

451 :デフォルトの名無しさん:03/08/07 19:30
COBOLは?

452 :デフォルトの名無しさん:03/08/07 21:02
Cは別にインデントいらないなあ。
目が慣れてるというのもあるが。

453 :デフォルトの名無しさん:03/08/07 21:14
>>422
"foo bar".split %r/ /
とか。

>>445
日本語

454 :デフォルトの名無しさん:03/08/07 21:49
>>422
"foo bar".split(/ /)


455 :デフォルトの名無しさん:03/08/07 22:48
Windowsで日本語のGUIアプリ作りたいのですが、RubyにはどんなGUIのツールキットがありますか?

456 :デフォルトの名無しさん:03/08/07 23:08
WinでGUIアプリでしかも日本語?
そりゃ向いてないよ。
RubyはUNIXで使いましょう。

457 :デフォルトの名無しさん:03/08/07 23:20
Apollo, VisualuRuby, ActiveScriptRubyあたり。
Tk, Gtk2…はきついかも。


458 :デフォルトの名無しさん:03/08/07 23:55
>>455,456
HSPでも使ったら?
つーかsageろ

ActiveScriptRubyってなんだ? 初めて聞いた

459 :デフォルトの名無しさん:03/08/08 00:04
ActiveScriptRuby
http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/index.html
winじゃ便利だよな。1.8はいつごろになるんだろ。

460 :デフォルトの名無しさん:03/08/08 00:38
忘れてるぞ。
WideStudio

これが一番Rubyユーザーに合ってる気がする。
http://www.widestudio.org

461 :デフォルトの名無しさん:03/08/08 01:12
>>459
ActiveScriptRuby いまいちピンと来ないのだがASPが例にあるし
これで元の質問にあるスタンドアローンのGUIアプリが作れるのかな?

サンプルコードどこかで見れないですか?


462 :デフォルトの名無しさん:03/08/08 01:45
>>455
いままで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アプリ作ってもいいやね

463 :デフォルトの名無しさん:03/08/08 02:46
while line = gets do
 print line if line !~ /var/
end

というプログラムが正常に動作してしまうのだが、
『!~』というのは何のクラスのメソッド?
Stringにはこんなメソッド、ないようだが。

464 :デフォルトの名無しさん:03/08/08 02:58
>>463
委譲

465 :デフォルトの名無しさん:03/08/08 03:29
>>462
??? HTAとやらを初めて見てビックリ!
HTMLでGUIアプリをコーディングしてるんですね?
なんじゃこりゃ?

EXEに出来れば面白いかもしれない。

466 :デフォルトの名無しさん:03/08/08 03:35
VisualuRubyならexerbと合わせて使う事でEXEに出来るよ
Win環境だけであれば、これが一番お勧め


467 :デフォルトの名無しさん:03/08/08 03:40
class C1
A = 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 を見ていないのはなぜ?

468 :デフォルトの名無しさん:03/08/08 04:06
>>467
定数のスコープが静的に決まるからじゃないかなあ

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]


469 :デフォルトの名無しさん:03/08/08 05:19
>>463 !~ は =~ の否定だよ。 String#=~ 参照。

470 :デフォルトの名無しさん:03/08/08 06:13
>>469
http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=String
での String#=~ の説明では、!~ について特に言及してないのだが。
マニュアルで !~ について言及してあるところはある?

471 :デフォルトの名無しさん:03/08/08 06:20
演算子のところ。だいたい != もココ。


472 :デフォルトの名無しさん:03/08/08 07:03
>>455
ttp://ponx.s5.xrea.com/bibo/20030807.html#p02
挑戦してみる気があるなら。

473 :デフォルトの名無しさん:03/08/08 08:50
みのるの超サイト

http://minoru_god.tripod.co.jp/

めっちゃかこええ僕の自己紹介(^‥^)

http://minoru_god.tripod.co.jp/profile.html


474 :デフォルトの名無しさん:03/08/08 09:14
GUIについて盛り上がってるみたいなので、便乗させて下さい
OSXに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

475 :デフォルトの名無しさん:03/08/08 09:44
>>474
> OSXにTclTk(8.4.2)をインストール(バイナリ版)し
ってことはTcl/Tkは標準じゃないわけ?
たぶん、tcltklibなしでコンパイルされてるんじゃないの。
OSX添付のrubyは、digest/md5あたりでも問題を聞くし、あまりうまくないのかも。

> ソースから再コンパイルしないといけないのでしょうか?
1.8も(一応)出たことだし、それをすすめる。

476 :デフォルトの名無しさん:03/08/08 10:05
>>471
みつかった。さんきゅ。
そうか、演算子だったのか。

477 :デフォルトの名無しさん:03/08/08 11:06
>>476
ページ頭の検索使っても見つかるYo


478 :デフォルトの名無しさん:03/08/08 11:14
hash = {}
key = []

hash[key] = true
key.push 0

p hash[[]] #=> nil

なんだか、こういう挙動はあまり好きじゃないな。
たまに嵌る。

479 :デフォルトの名無しさん:03/08/08 11:34
hash key に array を使う人はあまり好きじゃないな。

480 :デフォルトの名無しさん:03/08/08 12:35
スクリプト 言語 にRuby使うひとあんまりすきじゃないな。

481 :デフォルトの名無しさん:03/08/08 13:22
>>478

文字列以外は普通 freeze するべ。
文字列がキーのときは勝手にそうなってるだけだし。


482 :デフォルトの名無しさん:03/08/08 15:40
LL土曜っていく香具師いる?

483 :デフォルトの名無しさん:03/08/08 19:41
>>482
いきてーよ。
くそー。のんびりしてたら満席御礼だったよ。鬱だ。

484 :デフォルトの名無しさん:03/08/09 04:14
>>480
それ日本語ですか?

485 :デフォルトの名無しさん:03/08/09 14:36
>>484
あなた日本人ですか?

486 :デフォルトの名無しさん:03/08/09 18:53
>スクリプト 言語 にRuby使うひとあんまりすきじゃないな。

これは変だろ。

487 :デフォルトの名無しさん:03/08/09 19:14
正規表現における $ では、改行が消えてしまうので困っています。

スクリプト:
--------------------
str = "AAA\nBBB\nCCC"
str.scan(/(^.*$)/) do
 p $1
end
--------------------

実行結果:
"AAA"    ← "AAA\n" であってほしい
"BBB"    ← "BBB\n" であってほしい
"CCC"

このとき、"AAA"ではなく"AAA\n"、"BBB"ではなく"BBB\n"であってほしいのですが
そんなことは可能でしょうか。


488 :デフォルトの名無しさん:03/08/09 19:21
visualuruby 1.8対応 キタ━━━━(゚∀゚)━━━━ッ!! ありがとうございます!


489 :デフォルトの名無しさん:03/08/09 19:25
>>487
str = "AAA\nBBB\nCCC"
str.scan(/(^.*(?:\n|\z))/) do
 p $1
end


490 :デフォルトの名無しさん:03/08/09 19:27
390 名前:830[sage] 投稿日:03/08/09 15:28
助けてー。助太刀頼む。
----------
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/

491 :デフォルトの名無しさん:03/08/09 19:53
Rは http://www.r-project.org/ だろ

492 :デフォルトの名無しさん:03/08/09 20:25
n番目の数値を一つ増やす
cvssucc("1,2,a,4", 3) = "1,2,a,5"

という関数はどう実装すればいいですか?
数値や文字列問わずというのはできるのですが。

493 :デフォルトの名無しさん:03/08/09 20:38
>>492
def cvssucc(s, idx)
 s = s.split(',')
 s[idx].succ!
 s.join(',')
end

494 :デフォルトの名無しさん:03/08/09 23:52
>>492
どうでもいいけどcsvsuccだよな。


495 :デフォルトの名無しさん:03/08/10 01:09
老婆心での質問だがc??succ('1,2,"a,b",4', 3)でも大丈夫なのか?

496 :デフォルトの名無しさん:03/08/10 01:59
老婆は黙ってろ。

497 :デフォルトの名無しさん:03/08/10 02:52
>>495
あえてインデントは気にしないよ
もちろん「詳説〜」からのコピペだ。

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)


498 :デフォルトの名無しさん:03/08/10 03:05
>>489
ははあ、なるほど、$ を使わなければいいのか。
というか、今回の場合では $ を使っちゃいけないのか。
了解しました。どうもありがとう。

499 :デフォルトの名無しさん:03/08/10 03:22
>>498
その例に限って言えば、これで良い気もするが。

str.each_line do |line|
p line
end

500 :500:03/08/10 06:13
stackless-python

501 :デフォルトの名無しさん:03/08/10 12:18
csvをパースするやつって1.8から標準添付だっけ?

502 :デフォルトの名無しさん:03/08/10 12:49
>>501
>>255を見ると、1.8.0(preview4)から標準らすぃ

503 :デフォルトの名無しさん:03/08/10 17:02
a = [[]] * 10
a[0] << "x"
p a #=> [["x"], ["x"], ["x"], ["x"], ["x"], ["x"], ["x"], ["x"], ["x"], ["x"]]

正直、一時間ほどハマりました。

504 :デフォルトの名無しさん:03/08/10 17:20
rubyは遅くて使い物になりませんな

505 :デフォルトの名無しさん:03/08/10 17:21
>>503
Rubyリファレンスマニュアル - trap::Array
http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=trap%3A%3AArray


506 :デフォルトの名無しさん:03/08/10 18:22
trap::空白文字による違い に

b = a+2; # a と 2 の和
b = a +2; # a(+2) と解釈される.
b = a + 2; # a と 2 の和

ってあったけど、これ単項+のせいだよね?
単項+ っているの??

507 :デフォルトの名無しさん:03/08/10 18:26
いる。

508 :デフォルトの名無しさん:03/08/10 18:43
>>506
> ってあったけど、これ単項+のせいだよね?

括弧省略文法のせい


509 :デフォルトの名無しさん:03/08/10 18:46
>>507
具体例キボン

510 :デフォルトの名無しさん:03/08/10 18:50
>>508
単項+ が無ければ
空白にかかわらず2項+になるんじゃないの?

511 :デフォルトの名無しさん:03/08/10 18:51
>>510
単項−はいるから何も解決しない


512 :509:03/08/10 18:58
>>507
単項+ ってそのものを返すだけじゃないの?
だったらいらないと思うんだけどな。

513 :ruby:03/08/10 19:03
うるさいな、ほっといてくれ!

514 :509:03/08/10 19:04
>>511
たしかに。逝ってきます。

515 :デフォルトの名無しさん:03/08/10 20:33
Ruby初心者、というかスクリプト言語初心者なのですが、正規表現中で、
括弧の含まれる文字列の扱いに困っています。
たとえば、こういった場合です。

str = "abc(inside)"
if "\(.*\)" =~ /#{str}/

この結果がfalseになります。仕様なのでしょうが、困っています。
同じ理由で、gsubなどの変換関数も使えません。
回避策はないでしょうか。



516 :デフォルトの名無しさん:03/08/10 20:58
/\(.*\)/ =~ str

517 :デフォルトの名無しさん:03/08/10 21:03

str.gsub!(/\(.*\)/, '')
をしたいときはどうすればよいですか?


518 :デフォルトの名無しさん:03/08/10 21:05
そうしたいときはそうしろ。
何したいんだよ。

519 :デフォルトの名無しさん:03/08/10 21:15
いけました。動かないと思いましたが凡ミスでした。すいません。


520 :デフォルトの名無しさん:03/08/10 21:40
>>518
おまえ生意気だな

521 :デフォルトの名無しさん:03/08/10 22:05
すいません
ごめんなさい
もうしわけありません

522 :520:03/08/10 22:22
いや俺もいいすぎたよ。すまん


523 :デフォルトの名無しさん:03/08/10 22:29
つられて俺も謝っとく
ほんとにすまんかった

524 :ruby:03/08/10 22:53
馴れ合ってんじゃねえよ

525 :デフォルトの名無しさん:03/08/10 22:56
ruby 生意気だな


526 :デフォルトの名無しさん:03/08/10 23:02
rubyの無礼俺が誤る。
正直すまんかった。

527 :デフォルトの名無しさん:03/08/10 23:43
馴れ合いってキモイよな
すまんかった

528 :デフォルトの名無しさん:03/08/11 01:09
いや、もとをただせば全部俺が悪いんだ。
すまんかった。

529 :デフォルトの名無しさん:03/08/11 02:19
>>528
お前が悪い


530 :デフォルトの名無しさん:03/08/11 04:06
Ruby/GtkのCListで set_row_data を使うGtkが必ず落ちる。
助けてくれ。

531 :デフォルトの名無しさん:03/08/11 09:01
a=['A', 'a', 'B', 'b', 'C']
p 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]

532 :デフォルトの名無しさん:03/08/11 09:20
0 は真だから。

Numeric#nonzero? を使って
a.sort{|a,b|(a.upcase <=> b.upcase).nonzero? or a <=> b}
とやるのかな。


533 :531:03/08/11 10:07
ありがとう。
でもそれだと、最初の条件でソートされなくならないですか?

534 :531:03/08/11 10:09
と思ったらされてるみたいですね。
どんな仕組みになっているんだろ……。

HELP読んでくる。

535 :デフォルトの名無しさん:03/08/11 10:13
$ refe nonzero
Numeric#nonzero?
--- nonzero?

    ゼロの時nilを返し、非ゼロの時 self を返します。


536 :デフォルトの名無しさん:03/08/11 18:41
3.times{} は、あるのに 3.map{} がない理由は?

537 :デフォルトの名無しさん:03/08/11 20:03


3.map{} にどんな動作を期待してる?


538 :デフォルトの名無しさん:03/08/11 21:28
期待する動作がないから?

539 :デフォルトの名無しさん:03/08/12 00:28
>>531
nonzero? ってなんかキモいんで俺は下のようにやる

(a.upcase <=> b.upcase) * 2 + (a <=> b)

540 :デフォルトの名無しさん:03/08/12 00:36
a.sort_by{ |a| [a.upcase, a] }


541 :デフォルトの名無しさん:03/08/12 01:09
>>537
p ((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...) を書くのが作業的で面倒くさい。

542 :デフォルトの名無しさん:03/08/12 01:23
でもmapじゃないよなぁ

543 :デフォルトの名無しさん:03/08/12 01:50
>>406 を読んでたら 1.8.0 から

> Array.new(10) { |i| i + 1 }
> => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

が、できるようになったらしい。
機能的にはとても満足。
だけど、書くのがさらに面倒だ。

544 :デフォルトの名無しさん:03/08/12 02:06
で、ユーザーって増えてるの?

545 :デフォルトの名無しさん:03/08/12 03:02
>>541
>>536 見て「ハァ?」って思ったけど、 >>541 でちょっと理解できた。
何かイカした名前を付けれれば、採用され・・・ないか。
zero origin か one origin か、とかそういうレベルでももめそうな悪寒。

546 :デフォルトの名無しさん:03/08/12 03:26
>545
zero originだけで良いと思われ。
one originが必要なら
 foo= 10.map{|i| ・・・・・ }
 foo.shift
で出来るけど逆(one origineな実装時にzero origineな結果を得る)
はスッキリ書けないと思われ。


547 :デフォルトの名無しさん:03/08/12 03:57
one origine な
foo = 10.map{|i| func(i)}
って、zero origineな
foo = 9.map{|i| func(i+1)}
と同じじゃないの?

すっきりしているかどうかという問題に関しては、
shiftするのとどっ恋どっ恋だと思うけど。

548 :デフォルトの名無しさん:03/08/12 04:52
スタックを増やす方法をおしえてください。

549 :デフォルトの名無しさん:03/08/12 08:30
環境を書け。

550 :デフォルトの名無しさん:03/08/12 09:25
class Integer
def times_collect(&b)
(0...self).map{|i| b.call(i) }
end
alias times_map times_collect
end

こんな感じかの、名前どおりtimesに合わせて0オリジンで文句は出ないだろ

551 :デフォルトの名無しさん:03/08/12 13:31
ナイスネーミング!

552 :デフォルトの名無しさん:03/08/12 13:40
$ ruby -renumerator -e 'p 3.enum_for(:times).map{|i|i}'
[0, 1, 2]

553 :デフォルトの名無しさん:03/08/12 15:10
面倒くさすぎ。

554 :デフォルトの名無しさん:03/08/12 16:09
さて、どうやって matz 氏を説得するかの。

555 :デフォルトの名無しさん:03/08/12 16:12
>>548
> スタックを増やす方法をおしえてください。

スタック += 1


556 :デフォルトの名無しさん:03/08/12 17:12
スタック.拡大(いぱーい)

557 :デフォルトの名無しさん:03/08/12 18:56

>>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>


558 :デフォルトの名無しさん:03/08/12 20:24
見てのとおり、スタックが足りない。

559 :デフォルトの名無しさん:03/08/12 20:30
あ、ごめん、環境を示したつもりなのか。
mswin32ならコンパイル時に
nmake STACK=0x4000000
だ。

560 :デフォルトの名無しさん:03/08/12 23:05
>>554(==>>550?)
名前が今市という気がする。seqってのはどうだろう。
class Integer
  def seq(&b)
    range = 0...self
    if b
      range.collect(&b)
    else
      range
    end
  end
end



561 :デフォルトの名無しさん:03/08/12 23:46
times_map / times_collect ってするんなら、
そもそも times は times_each じゃないと名前が対応しない。
だから times が each という名前を含んでいないのなら、
map / collect の名前を使う必要がない。

だから seq でどうだという解釈でよろしいか?

562 :デフォルトの名無しさん:03/08/13 00:21
Python 世界的に有名。ライブラリが豊富。
Ruby 日本でのみ有名。日本語対応で優れる。

でOK?

563 :デフォルトの名無しさん:03/08/13 00:56
>>562
OK.

564 :デフォルトの名無しさん:03/08/13 11:06
>>562
Pythonはrubyをyieldを取り入れたそうです。

C#は次期バージョンで、yieldを導入します。

ttp://www.microsoft.com/japan/msdn/vs/vcsharp/vbconCProgrammingLanguageFutureFeatures.asp






565 :デフォルトの名無しさん:03/08/13 11:35
Python インデント
Ruby end end end



566 :デフォルトの名無しさん:03/08/13 11:48
>>561
そんなとこかねぇ。あとはman 1 seq。
それと、{collect|map}_*ってのはたびたび出ても通った例がないから、
語順を逆にしてもどうかな、と。

567 :デフォルトの名無しさん:03/08/13 12:00
>>564
yieldの実装ってどうなってるの?
yieldが合計100回呼ばれるとしたら要素100の配列を前もって作って返すのか
fiberかなにかを使ってyieldの呼出し毎に値を呼び出し側に返すのか?

568 :デフォルトの名無しさん:03/08/14 17:43
Ruby/GTK (今は Ruby/GNOME だっけ?) で
Gtk::Entry で入力された文字列を右寄せで表示したい
のですが、どうすれば良いですか?

Gtk::Label は set_justify があるので可能なんですが、
Gtk::Entry にはそれらしきものが無いので...。


569 :デフォルトの名無しさん:03/08/14 18:03
>>567
Rubyの?pythonの?

570 :デフォルトの名無しさん:03/08/14 18:08
>>569
>>1

571 :デフォルトの名無しさん:03/08/14 19:46
>>567>>564を指してるので、どれについて言ってるのかが分からなかったんだが。

Rubyのyieldは、コールバックの呼び出しと思えばいい。
ブロックの実行環境をスタック上に再現して実行する。

572 :デフォルトの名無しさん:03/08/14 20:24
LISPだと、こんな機能追加は一瞬でできるのに
他の言語は次バージョンまで待たされるのね。

573 :デフォルトの名無しさん:03/08/14 20:32
できてるじゃん。
単に標準で組み込まれるかどうかだけ。

574 :デフォルトの名無しさん:03/08/14 20:55
キモイ作者の気まぐれ次第ってことか。

575 :デフォルトの名無しさん:03/08/14 20:56
痛い脊髄反射レスが来ましたよ

576 :デフォルトの名無しさん:03/08/14 21:02
>>574
残念ながら。

577 :デフォルトの名無しさん:03/08/14 23:47
ruby 1.8.0 で、ある記号処理をしてる。
行を読み、"|" で区切られた部分に分けたい。

s = "1|2|3"
a = s.scan(/[^|]*\|?/)
p a

→["1|", "2|", "3", ""]

"3" までは期待通りだけど、最後の "" の意味が判らん。何にマッチしたの?
今は [-2] の末尾が区切り文字じゃない時、[-1] が空文字列なら pop して誤魔化してる。
正規表現、scan の仕様に詳しい人教えて下さい。

578 :デフォルトの名無しさん:03/08/14 23:59
>>577
s = "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"]になる
マッチした部分が配列で返されるから、必要な部分にマッチする正規表現を書けば良い。

579 :577:03/08/15 00:14
>>578
サンクスです。

"1|2||3" の様に区切りが連続した場合は
["1|", "2|", "|", "3"] の様に検出したいんですが、前者の /[^|]+\|?/ だとマズいんです。
後者は、区切り文字そのものが消えちゃうんで、今回の用途に合いません。

もう少しスマートに書けるかと思ったんですが、やっぱ誤魔化し法で行ってみます。
それとも、処理するコードでスマートにすべきなのか。

ありがとうございました。

580 :デフォルトの名無しさん:03/08/15 00:23
"3" を抜き出した時点で元文字列は消費しきってるのに、
なんで空にマッチしてるかの説明が知りたい。
マッチする気なら無限にマッチする事も可能なのに、なぜ1回だけ余計にマッチしてるのか。

"1|2|3" → "2|3"、["1|"]
"2|3"  → "3"、 ["1|", "2|"]
"3"   → ""、  ["1|", "2|", ""]
""    → なんでこれを処理する?

581 :580:03/08/15 00:24
スマソ、間違えた

"1|2|3" → "2|3"、["1|"]
"2|3"  → "3"、 ["1|", "2|"]
"3"   → ""、  ["1|", "2|", "3"]
""    → なんでこれを処理する?

582 :デフォルトの名無しさん:03/08/15 00:34
// =~ "" がマッチするから。しかし、"".scan(//)がいつまでもマッチし続けると困るから一回だけマッチするようになってる


583 :デフォルトの名無しさん:03/08/15 00:38
s = "1|2||3"
a = s.scan(/a*?/)
p a
これだと、空文字列7個の配列が返ってくる。

584 :デフォルトの名無しさん:03/08/15 00:56
>>583
聞いてるのか?

p "aaa".scan(//)
これも空文字列の配列が返るが何か?
正規表現は最左最長マッチする


585 :デフォルトの名無しさん:03/08/15 01:08
>>577
s = "1|2||3"
a = s.scan(/[^|]*\||[^|]+$/)
p a
こんなんじゃだめ?

586 :デフォルトの名無しさん:03/08/15 01:16
>>579

以下でどう?

# マッチしたいものは
# (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"]


587 :デフォルトの名無しさん:03/08/15 01:18
>>586
正規表現に正規表現埋め込めるのは1.8から


588 :583:03/08/15 01:25
>>584
いきなり聞いてるのかといわれても、自分は誰にも質問した覚えは無いので、
聞いてませんとしか答えようが無いです。

589 :デフォルトの名無しさん:03/08/15 01:47
Rubyも汚くなったな。

590 :デフォルトの名無しさん:03/08/15 01:49
>>588
聞いてませんとしか答えようが無いといいながら、
聞いてませんと答えていない。
つまり、あなたの主張は矛盾している。

591 :583:03/08/15 02:04
>>590
確かにw

>>584
聞いてません

592 :ruby:03/08/15 03:20
>>589

a = / [^|]+\|? /x
b = / \| /x

re = / #{a} | #{b} /x

p "1|2|3".scan(re)
p "1|2||3".scan(re)


593 :python:03/08/15 03:21
import re

a = 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")

微妙だがパイソンに一票


594 :577:03/08/15 04:31
>>585,586
ありがとうございます。

言葉が足りなかったんですが、言いたかった事は>>580さんの通りです。

まだ仕様がありまして、"1|2|" → ["1|", "2|", ""] になる必要もあります(配列は必ず "|" の数+1)。
ヒントを頂いたので、自分で練ってみようと思います。
出来上がった物は近い内に公開する予定です。

595 :デフォルトの名無しさん:03/08/15 05:34
>>594

結局 "|" による 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", "|"]


596 :デフォルトの名無しさん:03/08/15 05:45
素直にsplitして終端以外を"|"追加すれば?
変に凝ると後でわかんなくなる。

597 :デフォルトの名無しさん:03/08/15 05:57
>>594
考えたんですが、最後の条件のせいで必ず空文字列にマッチする必要がある
そうすると最初の条件を満たさない。だから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)


598 :デフォルトの名無しさん:03/08/15 11:16
>>597
できた。要Oniguruma

re = / (?<=\| | ^) [^|]* (?: \| | \z ) /x

p "1|2|3".scan(re)
p "1|2||3".scan(re)
p "1|2|".scan(re)


599 :山崎 渉:03/08/15 15:24
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

600 :デフォルトの名無しさん:03/08/15 23:46
分割文字列の最後に "|" を付け加えて /[^|]*|/ で scan して
最後だけ "|" をとればいいだろ

601 :デフォルトの名無しさん:03/08/16 00:27
めんどくさいにょ


602 :デフォルトの名無しさん:03/08/16 04:58
RAAに登録するときって英語のページを用意しなきゃいけないんだっけ?

603 :デフォルトの名無しさん:03/08/16 05:03
>>602
そのほうが望ましい

604 :デフォルトの名無しさん:03/08/16 14:39
>>603
さんくす。
MUSTじゃなくてSHOULDなんですね。


605 :デフォルトの名無しさん:03/08/16 16:52
質問があるのですが、
シンボルと文字列はどう使い分けたら良いのでしょうか?

606 :デフォルトの名無しさん:03/08/16 17:08
つかどう混同したら良いのでしょうか

607 :デフォルトの名無しさん:03/08/16 17:50
つか同根どうしてしまうのでしょうか


608 :デフォルトの名無しさん:03/08/16 18:04
module M
def foo
1
end
module_function
def bar
foo
end
end

と書くと bar から foo を参照できないのはなぜ?

609 :デフォルトの名無しさん:03/08/16 18:30
呼べるよ。

module 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を定義しろ


610 :デフォルトの名無しさん:03/08/16 18:39
モジュール関数ってのはインスタンスに依存しないメソッド
なんだからインスタンスメソッド呼んぢゃまずいだろ


611 :デフォルトの名無しさん:03/08/16 21:17
さんざん既出だと思いますが検索しようがないので質問

Ruby 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"
自分はこれが納得できないのですが、どう理解すればよいでしょうか?

612 :デフォルトの名無しさん:03/08/16 21:20
>>611
腐ったミカンの方程式

613 :デフォルトの名無しさん:03/08/16 21:28
>>611
bar += "aho"

bar = bar + "aho"
と同じ振る舞い。
つまりbarは新しく生成された文字列オブジェクトを参照する。
もはやfooと同一ではない。

614 :デフォルトの名無しさん:03/08/16 21:30
同値と同一の違い。
つまり一言で言えば>>612

615 :デフォルトの名無しさん:03/08/16 21:33
>>611
矢がささってんだよ。

616 :デフォルトの名無しさん:03/08/16 21:33
>>611
メソッドには破壊的なものとそうでないものがある。
pop は破壊的にオブジェクトを変更する
+ は新しいオブジェクトを生成する
代入は変数に新しいオブジェクトを割り当てなおす
ふつうはね


617 :デフォルトの名無しさん:03/08/16 21:47
pop 盗んだバイクで走り出す
+= 100円玉で買えるぬくもり

618 :611:03/08/16 21:58
ありがとうございます。

foo="baka"
bar=foo
bar<<"aho"
p foo,bar # foo="bakaaho" bar="bakaaho"
ですね。

Perlと混乱していますが、"="について、
a=b+'c'(右辺と左辺が違う場合)はaに新しいオブジェクトが割り当てられるが
a=b では新しいオブジェクト割り当てはせず、aとbは同じオブジェクトを指す
ということですか?

619 :デフォルトの名無しさん:03/08/16 22:06
String#+(other) メソッドが新しい String オブジェクトを返す

620 :デフォルトの名無しさん:03/08/16 22:13
s1 = "baka"
s2 = "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


621 :611:03/08/16 22:18
右辺、左辺の問題じゃなくて
メソッドが新しいオブジェクトを返すかどうかってことですね・・・

すみません

622 :デフォルトの名無しさん:03/08/16 22:20
つまり一言で言えば>>612

623 :デフォルトの名無しさん:03/08/16 22:26
ぐぐったが言わんとしてることがわからん
taint関係?
俺が腐ってる?

624 :デフォルトの名無しさん:03/08/16 23:00
俺もわからん


625 :デフォルトの名無しさん:03/08/16 23:06
どちらかというと、別のスレに似合う言葉だな。

626 :デフォルトの名無しさん:03/08/16 23:45
>>623
なんの関係も無い。惑わされるな。

627 :デフォルトの名無しさん:03/08/17 02:44
>>625 ふと別スレを覗いてみたらどうしようもなく荒れてるな…。

628 :デフォルトの名無しさん:03/08/17 14:37
ある Hash から、特定のキーだけ抜き出した Hash を作るのに、なるべく簡単にやる
方法はないでしょうか? values_at は配列を返しますが、hashを返して欲しい。

629 :デフォルトの名無しさん:03/08/17 15:16
given_keys.inject({}) {|h,k| h[k] = given_hash[k]; h}

630 :デフォルトの名無しさん:03/08/17 15:29
h = {1=>1,2=>2,3=>3}
newh = h.reject {|k,| k % 2 == 1}
p h
p newh

{1=>1, 2=>2, 3=>3}
{2=>2}


631 :デフォルトの名無しさん:03/08/17 15:58
h = {1=>1,2=>2,3=>3}
need_keys = [1,3]

h2 = h.reject {|k,| not need_keys.member?(k)}

p h2 # => {1=>1, 3=>3}


632 :デフォルトの名無しさん:03/08/17 16:17
具体的な例も書けよ。

633 :デフォルトの名無しさん:03/08/17 18:12
ruby 1.8.0 (2003-08-04) [i386-mswin32] で
多倍精度の浮動小数点型を使うにはどうしたらいいのですか?


634 :デフォルトの名無しさん:03/08/17 19:08
>>633
require 'bigdecimal'
a = BigDecimal("0.1")
b = BigDecimal("0.0")
10.times { b += a }
puts b == 1 #=> true

# ただし、Floatとの演算では暗黙のうちにBigDecimalがFloatに
# なってしまうため、一箇所でも間違ってFloatのリテラルを
# 混じらせると任意精度が保てなくなる事には注意。

635 :デフォルトの名無しさん:03/08/17 19:45
BigDecimal を使わない方法で教えてください

636 :デフォルトの名無しさん:03/08/17 19:47
Ruby を使わない方法も教えてください

637 :633:03/08/17 19:56
>>634
ありがとー。

638 :デフォルトの名無しさん:03/08/17 20:01
Pythonに乗り換える方法を教えてください。

639 :デフォルトの名無しさん:03/08/17 20:10
Pythonから乗り換える方法を教えてください。

640 :デフォルトの名無しさん:03/08/17 20:19
素直にどっちも使えば?

641 :デフォルトの名無しさん:03/08/17 20:31
>>100
違います。immediate だからではなく、 immutable だから、だよ。

642 :デフォルトの名無しさん:03/08/17 20:33
ぶへ、リンクたどってきて激しく前のレスに反応してしまった。スマソ

643 :デフォルトの名無しさん:03/08/17 21:25
>>629
ruby 1.6.8 で、inject を使わない場合は?
each でまわすしかないかなあ。

644 :デフォルトの名無しさん:03/08/17 23:29
RubyのGCについて語ってくれる人募集

645 :デフォルトの名無しさん:03/08/17 23:34
>>636
perl使え

646 :デフォルトの名無しさん:03/08/18 00:09
>>635
すべからく整数として扱ってBignum+指数の演算で処理しろ。
ttp://homepage2.nifty.com/cat-chy/software/
の「big-decimal」参照。


647 :デフォルトの名無しさん:03/08/18 00:24
>>644
別スレからこぴぺ

matzは彼の博論を受け取ったらしいが、そういえば
matzはちまたの論文を最近も読んでるのだろうか?
もしそういう時間を取れていないのなら、Rubyの実装も
古い世代の設計のままになるという事だよね。

これへの反応は

かなり前だが1.8ではrandのアルゴリズムが変わってるみたいだし。
そういう情報は勝手に入って来るんじゃね?

だった。

自分としては、「勝手に」というのはちょっと違うかと。
randの話なら、MTは他の言語処理系やGLibなどでも
採用されはじめたことで(加えて国内の研究の成果であったことも
ちょっと心理的な追い風となって)Rubyでも採用されたという
経緯があると思う。
確かに、例えばBohemGCを参考にする必要はあるだろうが、
「勝手に入ってくる」範囲内の、つまりはオープンソースの他の
処理系の実装の情報だけでGCを実装していたら、
Rubyの拡張ライブラリでもPythonのようにリファレンス・カウンティングを
するはめ(失礼)になっていただろう。

つーことで、GCの専門家で、Rubyの行く末について語ってくれる
方を激しく募集。

648 :デフォルトの名無しさん:03/08/18 00:40
>GCの専門家
まるっきり別なものを想像してしまった・・・

649 :デフォルトの名無しさん:03/08/18 01:16
先生!
open3とexecとsystemって、どう違うんですか!%x(...)とか`str`との違いも
よくわからんです。
open3が速かったりするのかな?

650 :デフォルトの名無しさん:03/08/18 01:17
>>646 どうでもいいことだけど、多分すべからくの使い方間違ってる。
>>648 ワラタ。

651 :デフォルトの名無しさん:03/08/18 01:18
>>648
何を想像したのか気になる・・・

652 :デフォルトの名無しさん:03/08/18 01:36
> >>649
open3    子プロセスのstdin/stdout/stderrを個別に扱う。3つのIOを返す。
exec     自プロセス自体を置き換える。戻ってこない。
system   単純に子プロセスを実行。終了を待つ。正常終了(status=0)したらtrue、それ以外か実行に失敗したらfalseを返す。
%xと``   子プロセスのstdoutを読み込んで、Stringとして返す。


653 :デフォルトの名無しさん:03/08/18 01:59
>>651
ゲームキューブ

654 :デフォルトの名無しさん:03/08/18 02:10
>>653
ruby powerpc-nintendo-gamecubeキボンヌ。

655 :デフォルトの名無しさん:03/08/18 02:37
gtkでVBoxにボタンを追加した後にそのボタンを削除しても
ウィンドウが元の大きさに戻らないけどどうすればいい?

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


656 :デフォルトの名無しさん:03/08/18 12:52
p ('0377'.to_i) # → 0
p ('0b11'.to_i) # → 0
p ('0xFF'.to_i) # → 0

ショックだ。期待と違う。
3年位使ってて、さっき初めて気づいた。

657 :656:03/08/18 12:55
間違えた。
p ('0377'.to_i) # → 377

658 :デフォルトの名無しさん:03/08/18 13:02
to_iで基数を指定できる(0なら自動判別)のは1.8から?

p ('0377'.to_i(0)) # → 255
p ('0b11'.to_i(0)) # → 3
p ('0xFF'.to_i(0)) # → 255


659 :デフォルトの名無しさん:03/08/18 13:24
>>655
俺も知りたい。
set_usize, set_default_size, size_allocate, size_request が
関係してそうだけど色々試しても全然思い通りいかん。

660 :656:03/08/18 13:29
>>658
おお、知らなかった。サンクス。
早速1.8.0へ乗り換えよう。

こーいう差異もまとめて、またRuby本を出す予定なんてあるのかな。

661 :デフォルトの名無しさん:03/08/18 17:14
matz本のruby1.8バージョン欲しいなあ。たしか1.4ベースだよね。

662 :655:03/08/18 18:44
自動的に縮小はしないけど、こんなかんじでどうよ?

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)
}

ちなみに、gtk2 でしか試してないです。


663 :662:03/08/18 18:45
655 じゃなくて >>655 だ。ごめん。


664 :デフォルトの名無しさん:03/08/18 19:21
>>646
すべからく の誤用。
半島へカエレ!


665 :デフォルトの名無しさん:03/08/18 22:00
>>660
>>661
売れるのならばね…(ボソッ

666 :660:03/08/18 23:09
>>665
ユーザ数の事を言ってる?(w

でも、コード書いてて引っ掛かった時に、リファレンス代わりになる物が欲しいと思う。
Web やら ML やらから今までの変更を断片的に追うより、網羅的な物が。

667 :デフォルトの名無しさん:03/08/18 23:37
つかバイブルが最新の仕様に対応するのは当然だろう。
と無責任に言ってみる。

668 :デフォルトの名無しさん:03/08/19 00:01
質問です

http://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]
ってしたい場合はどうやればいいんでしょう?


669 :デフォルトの名無しさん:03/08/19 00:14
a = [3,4,5]
a[0,0] = [1,2]
p a #=> [1, 2, 3, 4, 5]

670 :デフォルトの名無しさん:03/08/19 00:19
>>666
リファレンス代わりの本だったらprogramming rubyじゃねえの。
おれはWebのマニュアルが最新情報に対応して検索もできていいと思うけどね。


671 :デフォルトの名無しさん:03/08/19 00:28
>>668
どうしてもそのメソッドでやるんなら、返値の self を self.flatten! にするとか。

672 :デフォルトの名無しさん:03/08/19 01:07
HTTP::Responseでres['last-modified']をepocにしたいのですが

673 :デフォルトの名無しさん:03/08/19 01:25
>>669
即レスどうもです
わざわざinsertを用意しなくてもできるんですか
全然しらんかった

>>671
どもです
self.flatten!も知りませんでした。
でも二次配列(?)を追加したいんで…


674 :673=668:03/08/19 01:26
と番号なかった

675 :659:03/08/19 01:33
>>662
p 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だと全然ダメだった。

676 :672:03/08/19 01:52
ParseDateモジュールなるものがありました。

677 :デフォルトの名無しさん:03/08/19 02:52
>>673
a.insert 0, *b

>>676
time.rbもあるよ。

678 :662:03/08/19 04:24
>>675
こんなんでどう?(もう試してるかもしれないけど)

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)
}


679 :675:03/08/19 11:14
>>678
再び試したけどウィンドウサイズは変わらんかった。
そもそも set_default_size は最初に開いたときのサイズでしょ。
resize っつーのがないと、後から変更するのはもう無理なんじゃないか。

680 :デフォルトの名無しさん:03/08/19 12:43
全ての 'test/unit' のテストの起動つてどうやるの

Dir.glob(**/*_test.rb') { |f|
require f
}

なんてやっても自動的にテストが呼び出されてテスト始まるんだけど、
しかし、setup が実行されなかったりする

681 :680:03/08/19 12:46
ファイルが違って同じテストクラス名だと setup が実行されないことがあるようですた

失礼しますた

682 :デフォルトの名無しさん:03/08/19 12:47
リリース版の同梱ライブラリでも

C:/ruby/lib/ruby/site_ruby/1.8/amrita/xml.rb:101: warning: toplevel constant File referenced by REXML::File

てな warning が出るのはどうにかならないだろうか


683 :デフォルトの名無しさん:03/08/19 13:00
何に同梱されてたんだよ。

684 :662:03/08/19 15:03
>>679
set_usize は?


685 :679:03/08/19 18:22
>>684
も、変化なし。

686 :デフォルトの名無しさん:03/08/19 23:33
VisualuRubyでフォーム作るときに背景色指定するには
どうすればいいんでしょうか?

687 :デフォルトの名無しさん:03/08/20 00:36
コントロールパネル → 画面 → デザイン あたりで好きにいじってください。

688 :デフォルトの名無しさん:03/08/20 01:58
>>647
LL2とかOOPSLAとかOSCONとかに行ってるんだから、最近の研究(最新、じゃない
かもしれないけど)の話が出てこないわけがないでしょ。
もちろん、話を聞いたからといって、採用するかどうかは別でしょうし、
いまいち理解できない分野もあるんでしょうけど(特に数学方面とか)。


689 :デフォルトの名無しさん:03/08/20 04:25
>>686は陰嚢湿疹

690 :655:03/08/20 05:46
>>685
元の655だけども、同じくうまく行ってない。まだ
いろいろは試せてないけど。もうちょっとあがいてみます。

ちなみに、ruby-gnomu CVS (gtk-1.2) と ruby 1.8.0 CVS でした。
gtk2.0 にしてみます。

返事遅れてスミマセソ


691 :デフォルトの名無しさん:03/08/20 09:44
ASP(active server page)使わなきゃいけない仕事で、できること
ならrubyで書きたいんだけど、仕事でASPをrubyで書いている人い
ますか?ついでに何でそんなもん使うんだという問いに対する効果
的な解答例も。

Windows 2000のサーバで、drbのサーバを動かしっぱなしにして仕
事させてる人はいますか?


692 :デフォルトの名無しさん:03/08/20 14:14
selfを書き換えるにはどうするの?
Stringにはreplaceってメソッドがあるらしい事は判ったんだけど、
やろうとしてるのはFloat。

より具体的に、saturate!(min,max)というのを考えてる。
selfがmin未満ならminに、maxを超えてたらmaxにする。
組み込みでもうあるかな。

Floatのメソッドじゃなく、関数にしちゃえば解決かもしれんけど、なんか面白くない。

693 :デフォルトの名無しさん:03/08/20 14:20
>>692
できない。

694 :デフォルトの名無しさん:03/08/20 20:52
>>692
代入を伴ってもよいんなら、
class Float
 def saturate(min, max)
  return min if min > self
  return max if max < self
  self
 end
end
やね。
でも、1.1.saturate!(2, 3)って意味わけ分からんやん。

695 :692:03/08/20 21:12
>>693,694
ありがとう。
そっかー、変数で呼ぶ事ばかり考えてて、定数で呼ぶのは想定外だった。こりゃ変だ。
どうもこの辺の発想が出来ねーんだよな俺。

696 :デフォルトの名無しさん:03/08/20 22:40
「人生の脱北者でも味わえるRubyのお勉強」きぼん。

697 :デフォルトの名無しさん:03/08/20 23:12
久々に初心者向けRuby本、Rubyの冒険がでたが、えっApolloでやんのってちょっと驚いた。
GUIなプログラム作れないと初心者にはガッカリ度が高いかもなので、敷居が高くなってもこの方がいいのか。

698 :デフォルトの名無しさん:03/08/20 23:32
>>697
「熊谷秀武・著 吉田和弘・監修」だから、Apolloは必然と思われ。

699 :デフォルトの名無しさん:03/08/20 23:43
K光ML読んで[るた]人に聞きたいんだけど、この本は正直どうなん?

700 :デフォルトの名無しさん:03/08/20 23:55
K光ML読んで[るた]人じゃなくていいんだけど、この本は正直どうなん?

701 :デフォルトの名無しさん:03/08/21 00:22
たしか著者は変数入れ物説を唱えていた
そのことに激しく違和感


702 :デフォルトの名無しさん:03/08/21 08:04
>>686
気付いてるかもしれんが、作者さん日記に回答が。


703 :655:03/08/21 08:50
>>690
最終的に>>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の方が楽だね。何かと。


704 :655:03/08/21 08:50
>>703
require '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


705 :デフォルトの名無しさん:03/08/21 14:38
>>701
そんなこといってたのか…

おれが思うに変数は紐だと思うw

706 :デフォルトの名無しさん:03/08/21 17:06
Rubyの変数は入れ物ではないので、>>705が正しい。

707 :デフォルトの名無しさん:03/08/21 17:43
紐だって例えは初めて聞いたけどいいな
オブジェクトが犬あたりか
誰からもつながれなくなった犬は山に帰っていくわけですな

708 :デフォルトの名無しさん:03/08/21 17:44
関係ないが、変数という名前自体が間違い。
変物と呼んでくれ。


709 :デフォルトの名無しさん:03/08/21 18:54
関係ないのなら、変物と呼びません。

155 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)