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

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

rubyを語るスレッド 3

1 :名無しさん@お腹いっぱい。:03/02/20 10:36
UNIX世界にRubyを啓蒙するべく、
オブジェクト指向スクリプト言語Rubyについて語ろう。

前スレ
rubyを語るスレッド 2
http://pc.2ch.net/test/read.cgi/unix/1040496222/
前々スレ
rubyを語るスレッド
http://pc.2ch.net/test/read.cgi/unix/1018967064/

関連リンク
公式サイト http://www.ruby-lang.org/
RubyGarden http://www.rubygarden.com/
RubyCentral http://www.rubycentral.com/
Rubyist! http://www.rubycolor.org/r/
RNN http://rnn.sourceforge.jp/modules/news/

2 :名無しさん@お腹いっぱい。:03/02/20 10:39
2ゲットだーヨ
 ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧ ∧   ダーヨ!!
  (´ー` )   ̄∨ ̄ ̄
  \ <    ∧∧     /|      (´´
    \.\_(´ー` )__/|' /    (´⌒(´
     ⊂ _⊂ ___`つつ≡(´⌒;;;≡≡≡≡
              (´⌒(´⌒(´⌒;;
      ズザネ━━━━━━━━━━━━━━━ヨッ


3 :名無しさん@お腹いっぱい。:03/02/20 11:07
どうせ立つと思ってたけどさ。

「啓蒙」とか書き加わってるからカチンとくるわけで。

4 :名無しさん@お腹いっぱい。:03/02/20 11:17
>>3
最近は>>1で煽りを入れるのがunix板の流行らしいからね。
で、ツッコむと荒らし認定される

5 :名無しさん@お腹いっぱい。:03/02/20 11:29
板違い。↓でやれ。

Ruby について Part 3
http://pc2.2ch.net/test/read.cgi/tech/1042004759/

6 :名無しさん@お腹いっぱい。:03/02/20 13:44
そんな流行ネーヨ

7 :名無しさん@お腹いっぱい。:03/02/20 14:03



↓↓↓↓以下、板違いDQNドモの屁理屈大会↓↓↓↓




8 :名無しさん@お腹いっぱい。:03/02/20 19:43
----------切り取り線----------

9 :名無しさん:03/02/20 23:16
Ada風ランデブーを作ってみた〜〜 こんなかんじ
(元は http://archive.adaic.com/standards/83lrm/html/lrm-09-12.html

class QueueTask < Task
entry :read, :write

def body(n = 100)
head = tail = 0
count = 0
buffer = Array.new(n)
loop {
request = accept(:read => count > 0, :write => count < n)
case request.method
when :read
process(request) {
buffer[tail]
}
tail = (tail + 1) % n
count -= 1
when :write
process(request) { |c|
buffer[head] = c
}
head = (head + 1) % n
count += 1
else
raise
end
}
end
end


10 :名無しさん@お腹いっぱい。:03/02/21 01:51
>>9
> entry :read, :write
これ何?

11 :名無しさん:03/02/21 02:14
class Task
def Task.entry(*names)
names.each do |name|
self.module_eval <<-End
def #{name}(*args, &block)
invoke(#{name.inspect}, args, &block)
end
public #{name.inspect}
End
end
end
end


12 :名無しさん:03/02/22 13:42
というわけでWWWで公開してみた〜〜
http://www.imasy.or.jp/~fukumoto/ruby/


13 :名無しさん@お腹いっぱい。:03/02/22 17:19
invoke ?

14 :名無しさん:03/02/22 19:36
invoke は Task のメソッド


15 :名無しさん@お腹いっぱい。:03/02/22 20:51
>>12
RAAに登録汁

[ruby-list:8239]にもPromiseとFutureってのがあるが。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/8239

16 :名無しさん:03/02/23 01:09
まあ future とかは誰か既に作ってるだろうなと思いつつ、いちおう RAAを検
索して無かったから作ってみたのだが。

Rubyはライブラリ作りが楽しいねえ。
差分プログラミングの極みだね。


17 :名無しさん:03/02/24 00:53
誕生日おめでとう


18 :名無しさん:03/02/24 01:54
synchronize は serialize のまちがいだよね


19 :名無しさん@お腹いっぱい。:03/02/25 09:29
もう10年か。

20 :bloom:03/02/25 09:37
http://www.agemasukudasai.com/bloom/

21 :名無しさん@お腹いっぱい。:03/02/25 19:01
↑広告氏ね

22 :名無しさん:03/02/26 02:44
標準ライブラリの MonitorMixin って、ひどく遅いようだがなんでだろ。
Mutex の20倍くらい遅い。 MonitorMixin::Accessible のアクセス関数が遅い
ような気がするが。


23 :名無しさん@お腹いっぱい。:03/02/26 03:38
ベンチマーク/プロファイルきぼんぬ

24 :名無しさん:03/02/26 03:53
http://www.imasy.or.jp/~fukumoto/ruby/spinlock.rb
の末尾のベンチマークなのだが。
ちょっと条件を変えて Monitor だけ使ったときのプロファイルはこんなかんじ

% cumulative self self total
time seconds seconds calls ms/call ms/call name
27.31 4.43 4.43 1000 4.43 185.05 MonitorMixin.exit
22.13 8.02 3.59 1000 3.59 25.09 MonitorMixin.enter
20.28 11.31 3.29 991 3.32 116.91 Thread#pass
10.60 13.03 1.72 548 3.14 31.26 Thread#stop
4.07 13.69 0.66 4522 0.15 0.15 Thread#critical=
3.76 14.30 0.61 3096 0.20 0.20 Kernel.==
2.84 14.76 0.46 3096 0.15 0.15 Thread#current
2.22 15.12 0.36 1 360.00 360.00 Profiler__.start_profile
1.48 15.36 0.24 1000 0.24 0.24 Fixnum#==
1.42 15.59 0.23 1011 0.23 0.23 Array#empty?
1.23 15.79 0.20 1000 0.20 0.20 Array#shift
1.11 15.97 0.18 5 36.00 32.00 Kernel.require
1.11 16.15 0.18 2000 0.09 0.09 Fixnum#+
0.99 16.31 0.16 1000 0.16 0.16 Fixnum#-
0.62 16.41 0.10 548 0.18 0.18 Thread#wakeup
0.31 16.46 0.05 10 5.00 10088.00 Integer#times
0.18 16.49 0.03 10 3.00 6.00 Thread#initialize


25 :名無しさん@お腹いっぱい。:03/02/26 14:58
>>24
> 20.28 11.31 3.29 991 3.32 116.91 Thread#pass
毎回明示的にThread#passしてるせいかも。

プリミティブなので、self callsに集計されてないのはプロファイラのバグか、
仕様変更に追従仕切れてないような気がするが。


26 :名無しさん:03/02/26 23:15
>>25
> >>24
> > 20.28 11.31 3.29 991 3.32 116.91 Thread#pass
> 毎回明示的にThread#passしてるせいかも。

そのとおりでした。 Thread.pass をコメントアウトしたら Mutex の 1.5倍
(時間で)以内まで改善。


27 :名無しさん@お腹いっぱい。:03/02/27 01:00
まともなDB本、なかなかでないね。
金光ショックが影響してるに違いない。

28 :名無しさん:03/02/27 01:39
>>26
> Thread.pass をコメントアウトしたら Mutex の 1.5倍
> (時間で)以内まで改善。

コメントアウトしなくても condition variable を使う場合は Mutex より
Monitor が速かったりするなぁ。なかなか微妙。


29 :名無しさん@お腹いっぱい。:03/02/27 15:18
tai64n を扱うクラス/ライブラリってありますか?
簡単そうなんで、無くても自分で作れそうですが、既にあるならば使いたいなと。

30 :名無しさん:03/02/28 04:49
それとは関係ないがちょっと聞いてくれ。RubyでLispインタープリタを作った
ら、Procで引数1つだけの処理が妙にむずかしいんだよ。どうしたらいいんだ。


31 :名無しさん@お腹いっぱい。:03/02/28 07:30
>>29
tai64nって知らなかった。
作ってみれば?

>>30
何をどうして何がむずかしいのかよく分からんが、
do |x,| endとか書いてみるテスト。

32 :名無しさん:03/02/28 23:04
>>31
> 何をどうして何がむずかしいのかよく分からんが、
> do |x,| endとか書いてみるテスト。

ありがとう。代入の場合と逆なのね。


33 :名無しさん@お腹いっぱい。:03/03/03 22:00
postgreSQLとmod_rubyな解決法とか、
世間様ではまだまだマイナーなんでしょうか?
翔泳社あたりから参考書でないかねぇ。

この際、matzの連載でrubyとSQLの連携な話とかリクエストしてみるテスト。

34 :名無しさん@お腹いっぱい。:03/03/04 02:08
「Ruby忍法帳」カコ(・∀・)イイ!!

35 :名無しさん:03/03/05 00:07
www.ruby-lang.org で、英語のページには preview2 の話が出ていないのはわ
ざとですか?


36 :名無しさん:03/03/05 01:09
>>31
> >>30
> 何をどうして何がむずかしいのかよく分からんが、
> do |x,| endとか書いてみるテスト。

やっぱりむずかしい〜〜 1個以上の引数をとる任意の Proc に対して第1引
数に空の Array、そのあとに0個以上の引数の列を渡したいのだが。

% irb --prompt simple
>> fn = lambda{ |r,| p r }
=> #<Proc:0x001a6860@(irb):1>
>> ret = []
=> []
>> args = []
=> []
>> fn.call(ret, *args)
ArgumentError: wrong number of arguments (0 for 2)
from (irb):4
from (irb):1:in `call'
from (irb):4


37 :名無しさん@お腹いっぱい。:03/03/05 01:32
>>36少年、Ruby のバージョンはいくつかね?% ruby -v -e "fn = lambda { |r, | p r }; a = []; b = []; fn.call(a, *b);"ruby 1.6.7 (2002-03-01) [i586-linux][]

38 :名無しさん@お腹いっぱい。:03/03/05 01:32
>>36

少年、Ruby のバージョンはいくつかね?

% ruby -v -e "fn = lambda { |r, | p r }; a = []; b = []; fn.call(a, *b);"
ruby 1.6.7 (2002-03-01) [i586-linux]
[]


39 :名無しさん:03/03/05 01:57
1.8.0-preview2であります


40 :名無しさん@お腹いっぱい。:03/03/06 00:29
>35
英語書くの面倒だから。


41 :名無しさん@お腹いっぱい。:03/03/06 00:36
fn = lambda {|r, *a| p r, a}

42 :名無しさん@お腹いっぱい。:03/03/06 00:37
>>35
英語で「ひな祭」ってなんていうんだ?

43 :名無しさん:03/03/06 01:13
>>41
それだと引数多過ぎたときにエラーになりません。
>>42
Girl's Festival だそうです。(Obunsha's Essential Japanese-English Dictionary)


44 :名無しさん:03/03/06 01:21
>>43
> それだと引数多過ぎたときにエラーになりません。

ちがった。 lambda{ |r,*l| } と lambda { |r,| } はどちらも #call の実引
数が空配列一つしかないとエラーになります。(1.8.0-preview2)

1% irb
irb(main):002:0> fn = lambda { |r, *l| }
=> #<Proc:0x001a215c@(irb):2>
irb(main):003:0> fn.call(1)
=> nil
irb(main):004:0> fn.call([])
ArgumentError: wrong number of arguments (0 for 2)
from (irb):4
from (irb):2:in `call'
from (irb):4
irb(main):006:0> fn = lambda { |r,| p r }
=> #<Proc:0x0018ddd8@(irb):6>
irb(main):007:0> fn.call(1)
1
=> nil
irb(main):008:0> fn.call([])
ArgumentError: wrong number of arguments (0 for 2)
from (irb):8
from (irb):6:in `call'
from (irb):8
irb(main):009:0>


45 :名無しさん@お腹いっぱい。:03/03/06 03:51
yieldだとエラーにはならないが、具体的にはどうなってほしいわけ?

46 :名無しさん:03/03/06 22:07
具体的には
第1引数に空配列を渡し、
第2引数以降には任意個のオブジェクトを渡し、
多過ぎたり少なすぎたらエラーにしてほしい。
http://www.imasy.or.jp/~fukumoto/ruby/lisp.rb
の348行目。
(注意: 1.6.8 だと :"1+" とかが通らないので試す場合は 1.8.0 を使うこと。)


47 :名無しさん@お腹いっぱい。:03/03/08 20:38
ruby の作者って宗教上の理由でコーヒーが飲めないって本当ですか?
ちがってたら、スマソ


48 :名無しさん@お腹いっぱい。:03/03/08 21:55
>>47
matzはモルモン教徒。
本人がそう書いてたが。

49 :スラド:03/03/09 02:03
インタビュー:Rubyの まつもとゆきひろ に聞け!
http://slashdot.jp/articles/03/03/07/0413248.shtml?topic=86

50 :ラリーウォールインタビューより:03/03/09 02:11
それから、Rubyの単項間接演算子*も好きだ。
だから、Perl 6には借りてきた。

Rubyで僕が一番問題だと思うのは、
暗黙のレキシカル・スコープがそうであるように、
「驚き最小の原則」が人を迷わせるということだ。
問題は、ひとは誰の驚きで悲観するのか、ということ。
上級者は初心者とは違うことに驚くし、
小さなプログラムを大きく育てようとする人は、
最初から大きなプログラムを設計する人とは違うことに驚くのだ。

たとえば、なんでもオブジェクト扱いするのは、
「初心者にとっての驚き最小の原則」の侵害だと思う。
初心者にとっては、数字は数字だし、文字列は文字列だ。
コンピュータが扱う限りでは、
それらは当然オブジェクトなのだろうし、
もちろん、上級者は、これらをオブジェクト扱いするのを問題にさえしない。
けれど、いきなりオブジェクト指向を強いると、
加速中の初心者にとっては徐行帯になってしまう。

51 :名無しさん@お腹いっぱい。:03/03/09 02:12
Perlのxが演算子なのは、めちゃ驚きだったが。

52 :名無しさん@お腹いっぱい。:03/03/09 03:54
あんまり説得力がないよねえ。同様に配列は配列、ハッシュはハッシュ…となるわけだが、
結局 Perl, Python, VB, Javaなどは何がオブジェクトで何がオブジェクトでないかという
基準がみんなそれぞれ違うんだよね。文字列は文字列、という考え方が自明と考えている
時点でもうバイアスがかかってる。Perlで洗礼を受けた初心者から続々とold typeが量産
される図式が見える。。

53 :名無しさん@お腹いっぱい。:03/03/09 03:57
Perl6のRFCとか黙示録を読んだけど、シンタクスシュガーを際限なく導入していく路線にはついていけないよ…。


54 :名無しさん@お腹いっぱい。:03/03/09 04:11
>>52
ラリーは言語学者だから、
文字と数字が人間にとってプリミティブに扱える存在であると
何か確信があるんだろうね。

55 :名無しさん@お腹いっぱい。:03/03/09 04:44
ラリーの言う初心者の驚きって、
rubyに最初にrubyに触れた時、その一瞬で終わるものだと思うが。
文字列が文字列としてのメソッドを持ってるってだけの話であって。

perlがもたらす驚きってそれどころの話じゃないしねぇ。
いつまでも変な記号が付きまとうし。

56 :名無しさん@お腹いっぱい。:03/03/09 05:58
Perl は驚きで満ち溢れている。

57 :名無しさん@お腹いっぱい。:03/03/09 07:45
ドロンジョ様(=のび太=コナン)は小原乃梨子。
とこんなところでツッコんでみるテスト。

58 :名無しさん@お腹いっぱい。:03/03/09 10:50
もし、Rubyに厨なスクリプトが溢れてきたら、Rubyが(使いやすいという意味で)本当に優れているという事がわかる。

59 :名無しさん@お腹いっぱい。:03/03/09 12:47
いってることは分かるけど、それはそれで烈しくいや〜ん。

60 :名無しさん@お腹いっぱい。:03/03/09 23:04
>>48

ありがとう!
やっぱり本当だったんですね!

洩れは普通のクリスチャンだけど、(なので、モルモンとはちょっと違います)
でも、なんか嬉しい!

rubyがんばれ!


61 :>>50:03/03/09 23:07
つまり、rubyは初心者むけってことですか?

有る意味ハゲ同!

なんかrubyみたいで、オブジェクト試行でない言語ないですかねぇ???
でも、rubyは使いやすいので、


62 :名無しさん@お腹いっぱい。:03/03/09 23:27
>>61
> なんかrubyみたいで、オブジェクト試行でない言語ないですかねぇ???
ruby のどういった機能が欲しいのでしょうか。

63 :名無しさん@お腹いっぱい。:03/03/09 23:49
rubyって、オブジェクト指向由来の特徴しか思いつかんのだが。

64 :名無しさん@お腹いっぱい。:03/03/10 00:27
>>63
Perl 由来の機能、変数名の prefix、ブロック付メソッド(旧名イテレータ)、
何かと議論になるレキシカルスコープと end

65 :名無しさん@お腹いっぱい。:03/03/10 01:00
>>61
ちゅーか、オブジェクト指向意識せずに Perl っぽく使ってりゃええやん
漏れは Ruby 使い始めて 1年くらいは class 作ったこともなかった(恥)

66 :名無しさん@お腹いっぱい。:03/03/10 01:33
>>65
ほら「恥」とか思っちゃうよね。俺もそうで、人にソース見せられないのが
つらい。別に Ruby が悪いわけではないが。

67 :名無しさん@お腹いっぱい。:03/03/10 02:53
別に無理にOOっぽく書くこともない。
デカくなってきて整理したくなったらクラスやモジュールを使うと便利とでも覚えとけ。


68 :名無しさん@お腹いっぱい。:03/03/10 03:18
この記事、分量は少ないが、
金光タンのデータベース本の内容を凌駕してると思うのだが。
http://www.atmarkit.co.jp/flinux/rensai/mysql07/mysql07a.html

MySQLとRubyとApacheで、かなり遊べそうだね。

69 :名無しさん@お腹いっぱい。:03/03/10 04:15
>>68
負の方向に凌駕してるのかと思って期待して読んじゃったよ(w

70 :名無しさん@お腹いっぱい。:03/03/10 04:22
>>69
なんだ、違うのか。読むのやめた。

71 :名無しさん@お腹いっぱい。:03/03/10 07:58
私の場合、RubyでDBを扱うときにいつも問題になるのは
どうやってDBを抽象化してやるかって話になります

そういった議論を設計レベルから解説してくれる本があれば
ぜひとも読みたいですなー

72 :名無しさん@お腹いっぱい。:03/03/10 10:25
>62
lisp ?

73 :名無しさん@お腹いっぱい。:03/03/10 11:04
リファレンスマニュアルをinfoに変換したい!
どうすればいいの?


74 :名無しさん@お腹いっぱい。:03/03/10 14:57
漢字コードの異なるファイルを読み込んだら、その都度 $KCODE は設定しないといけないんでしょうか?

75 :名無しさん@お腹いっぱい。:03/03/10 15:39
どう読み込むかによる。

76 :名無しさん@お腹いっぱい。:03/03/10 20:24
>>71
MySQLライブラリとか、もっと抽象化して、
オブジェクトオブジェクトな仕様になってたら、確かに面白いかもしれんね。
queryメソッドとか、ちょっとナニっぽくない?
いや、あれはあれで行き着いた仕様なのはわかってるのだが。

77 :名無しさん@お腹いっぱい。:03/03/10 20:28
それは拡張ライブラリの分担ではないと思われ。

78 :>>62:03/03/10 20:29
rubyの関数っていうのかなぁ?
chompとかARGFとか使いたいと思っています。

(とても便利)

でも、OOというのがどうも馴染まないんで。。。
離れたいのが本心です。


79 :名無しさん@お腹いっぱい。:03/03/10 20:34
>>78
そういう言語を Ruby で実装してみるのは面白いかもね。

80 :名無しさん@お腹いっぱい。:03/03/10 20:52
>>79
rubyなmoduleじゃだめ?

81 :名無しさん@お腹いっぱい。:03/03/10 23:31
>>80

どうしても、OOが馴染まんのです。


82 :名無しさん@お腹いっぱい。:03/03/10 23:43
Perl か sed+awk でいいじゃん。

83 :名無しさん@Emacs:03/03/10 23:51
ラリーウォールさんの記事興味あります。
自分は一年くらいpythonをやっただけのプログラミング初学者ですけど、
やっぱりオブジェクト指向というものの良さがわからないままです。
rubyをやってる初学者の方はそのへんどうですか?

正規表現を学んだのをきっかけにperlに触れたのですけど、
pythonとは違ったルーズさがなんか気持いいんですよね。(pythonも好きだけど)
それでrubyにも興味がでてきて、
いろいろ意見を聞いて触ってみたいなあと思ってるのですが。

84 :名無しさん@お腹いっぱい。:03/03/11 16:00
if foo
elsif hoge
end
と書くべきところを
if foo
else hoge
end
と書いて10分くらい悩んでた

85 :名無しさん@お腹いっぱい。:03/03/11 20:57
irbで :- (Symbol) を入力しようとすると次の行に継続してしまうのは仕様ですか?

86 :名無しさん@お腹いっぱい。:03/03/11 21:48
ところで Ruby の ReadLine って rl_line_buffer みたいなのって使える?


87 :名無しさん@お腹いっぱい。:03/03/11 23:33
>>83
オブジェクトがオブジェクトののメソッドを持ってる気持ちよさを感じれ。

88 :名無しさん@お腹いっぱい。:03/03/12 17:08
>>87
なかなかうまく言った

89 :名無しさん@お腹いっぱい。:03/03/12 18:27
>>88
タイプミスってるけどな(w

非オブジェクト指向に慣れてる人間が、既得の知識に束縛されて、
オブジェクト指向になじめないっていう話ならまだ理解できる。
でも、いわいる初心者にとって、
オブジェクト指向ってそんなに邪魔な存在なのかねぇ?
極端な例かもしれないが、
文字列が文字列オブジェクトとしてのメソッドを持ってるっていうのは、
別に概念的に難しくないでしょう。
難しくしてるのは既成のプログラマの持ってる先入観に過ぎないと思うが。

少なくとも、rubyのオブジェクト指向の難しさって、
初心者がつまずくような初歩の段階では発現しないと思うのだがなぁ。

90 :名無しさん@お腹いっぱい。:03/03/12 18:35
>>76
dbmとかpstore風にMySQLを用いるライブラリとか?
SQLは情報隠蔽したりして。
うーん、あれば楽しいかも。

91 :名無しさん@お腹いっぱい。:03/03/12 23:26
>>89

いや、逆でしょう?

文字列があったとして、その長さを数えるのは文字列自身ではないっていうのが
素人の考えでもあり、従来のプログラムのかんがえでもある。


92 :anti-oo:03/03/12 23:27
あるいみで、rubyの普及を一番妨げているのが、このOOだったりする罠〜


93 :名無しさん@お腹いっぱい。:03/03/12 23:32
>>91
いや、人によっても違うんだろうけど
私が教えている人達には受け入れやすい考え方のようだ
昔 Ruby以外でやっていた時に比べ
格段に学習効率が良くなってる。

# まあ 100人x10年位の集団だし当てにはならんけどね。

94 :名無しさん@お腹いっぱい。:03/03/12 23:38
>>91
「従来のプログラムのかんがえ」ではあるかも知れんが、
「素人の考え」かどうかは検証が必要。


95 :名無しさん@お腹いっぱい。:03/03/12 23:39
文字列が自分自身の長さを数える必要ないだろ。
自分自身のことだから *知っていて当たり前* だと思うが。


96 :名無しさん@お腹いっぱい。:03/03/12 23:40
>>90
SQL隠蔽というとDBI::Classみたいな奴?
http://www.moonwolf.com/~moonwolf/tdiary/20030303.html


97 :名無しさん@お腹いっぱい。:03/03/12 23:53
人がいるとするでしょ。
その人の名前を知りたいと思ったら、そいつに「あなたの名前は何ですか?」って聞くのは自然でしょ


98 :名無しさん@お腹いっぱい。:03/03/13 00:13
ひもがあるとするでしょ。
(ry

99 :名無しさん@お腹いっぱい。:03/03/13 00:50
おらっ!
Matz出て来いっ!

100 :名無しさん@お腹いっぱい。:03/03/13 00:54
rubyごときにつまずいてる奴は知能が低い。

101 :名無しさん@お腹いっぱい。:03/03/13 01:34
OO の概念的なモデルであるメッセージパッシングと、
言語の構文の対応がうまく言ってないということかね。

matz.name は、
matz に対して名前を尋ねるというメッセージを送り、
matz が名前を教えるという振る舞いで応対する、
という2段階が含まれている。

102 :名無しさん@お腹いっぱい。:03/03/13 02:18
>>97
その手のメタファって OOP を学ぶ上ではかえって足枷になったりせんかね?

103 :名無しさん@お腹いっぱい。:03/03/13 02:53
>>101
matz.nameが
「matzに名前を尋ね、matzが答える」っていう抽象的なメソッド、
とも解釈できると思うが。
「matzに名前を尋ねたが、kanemitsuが答えてしまった」だったりしたら
メソッドとしてナンセンスだし。

104 :名無しさん@お腹いっぱい。:03/03/13 05:03
rubyだけが出来るとかrubyが他に比べて得意とかの用途ってなにがある?

105 :名無しさん@お腹いっぱい。:03/03/13 08:26
>>103
> 「matzに名前を尋ねたが、kanemitsuが答えてしまった」


106 :山崎渉:03/03/13 16:27
(^^)

107 :名無しさん@お腹いっぱい。:03/03/13 17:47
>>104
LightWeightLanguageなところとか。

108 :名無しさん@お腹いっぱい。:03/03/13 22:19
>>96
すごくイイかも
thx!

109 :名無しさん@お腹いっぱい。:03/03/13 23:17
たとえば、冷蔵庫のサイズを計るとする。

冷蔵庫.size

がその書き方だとおもうが、どうみても不自然


110 :名無しさん@お腹いっぱい。:03/03/13 23:20
>>109
「不自然」かどうかは主観的・相対的なものなのでは?

漏れにはどうみてもとても自然に思えるよ。

111 :名無しさん@お腹いっぱい。:03/03/13 23:22
size(冷蔵庫) の方が、何も知らない人にとってはわかりやすい。

というのは本当に間違いなのかなぁ。。

112 :110:03/03/13 23:23
つまり、「どうみても」っていう部分を合理的・論理的に説明できる?っていう話。

113 :名無しさん@お腹いっぱい。:03/03/13 23:26
元々、人間の思考はどっちのパターン(方向?)に近いのか。

114 :名無しさん@お腹いっぱい。:03/03/13 23:27
冷蔵庫のサイズを計ると言うと不自然かもね。
人間.計れ(冷蔵庫)
冷蔵庫の属性としてのサイズはってことだと。
冷蔵庫.高さ

115 :名無しさん@お腹いっぱい。:03/03/13 23:34
1. 対象が動作を知っている。
2. 動作は人間がするもの。人間が何かをすれば、対象に何かが起こる。

2は手続き指向だけど、人間は本来、この考え方で動いてるような。
もしそうなら、発想の転換、に違和感を感じる人が出ても仕方がない。(?)

116 :名無しさん@お腹いっぱい。:03/03/13 23:42
>>115
何が論点になってきてるのかいまいちわからんのだが、
その発想の転換ができないのであれば、
無理して Ruby 使わず Perl (など) を使ってればいいじゃん、
ってことでいいんじゃないの?

117 :名無しさん@お腹いっぱい。:03/03/13 23:46
オブジェクト指向が自然な指向とは必ずしも言えんわなぁ?

とはいえ、良く引合に出される自動販売機なんかはまさに
ぴったり来る例かも。


118 :名無しさん@お腹いっぱい。:03/03/13 23:53
冷蔵庫のサイズなんてのは人間が存在してもしなくても
冷蔵庫自体が内在している性質なんだから 冷蔵庫.size ってのは自分には自然に感じる。

119 :名無しさん@お腹いっぱい。:03/03/13 23:54
>>118

いや、そうではなくて、そのサイズを測定する機能がオブジェクト側にある
という点が着眼点になっていると思われ


120 :名無しさん:03/03/14 00:39
冷蔵庫のサイズは「冷蔵庫のサイズ」と書くのが自然だよね。
Ruby では「の」を「.」で書くから不自然なんだよ。きっと。

121 :名無しさん@お腹いっぱい。:03/03/14 01:30
hage ha String no new("hoge")
p hage no size

テニオハruby


122 :名無しさん@お腹いっぱい。:03/03/14 01:35
>>121
ネタにレスするのもなんだが、、、
そういう風に書くとオブジェクト指向を誤解する人間が増えるから良くないよ。

123 :名無しさん@お腹いっぱい。:03/03/14 06:32
オブジェクトは現実世界のモノそのものではない。
「それいけノンタック」 でノンタックが
「おでこのメガネでデコデコデコリーン」 した世界が近い。

124 :名無しさん@お腹いっぱい。:03/03/14 13:43
>>123
なんだそりゃ?おもしろそうなので詳しくぷりーず。

125 :124:03/03/14 13:45
結局、自分でぐぐってみた。なるほど。

126 :名無しさん@お腹いっぱい。:03/03/14 17:25
あんまり議論の内容をよく知らないんですけど、
レキシカルスコープって不自然なんですか?


127 :名無しさん@お腹いっぱい。:03/03/14 19:23
まぁ、オブジェクト指向というのは便利な半面
しっくりとこない部分もあるということだ罠〜。

なんでもかんでもOOというのは、有る意味アフォかも


128 :名無しさん@お腹いっぱい。:03/03/14 19:32
>>127
しっくりこないのは君がアフォだからなのだが。

129 :名無しさん@お腹いっぱい。:03/03/14 20:46
漏れはVBAから入ったんだが仲間に入れてもらえますか?

130 :名無しさん@お腹いっぱい。:03/03/14 22:34
お舞い羅、考えすぎだよ


131 :名無しさん@お腹いっぱい。:03/03/14 22:59
rubyはストレス感じる


132 :名無しさん@お腹いっぱい。:03/03/14 23:08
↑ ./-JP の記事を読んできた人

133 :名無しさん@お腹いっぱい。:03/03/15 06:57
今頃スラドのインタビュー読んだんだけどさ、
糞大江の「あいまいな日本の私」という言葉を引用してて
ちょっとだけ萎えた。まぁ深い意味はないんだろうけれど。

134 :名無しさん@お腹いっぱい。:03/03/15 07:04
あそこは、ちょっとだけニヤッ、として流すところでしょう。

135 :名無しさん@お腹いっぱい。:03/03/15 13:09
「あいまいな日本の私」は大江オリジナルではないわけだが。。。
最近の若い人は知らなくて当り前か。

136 :名無しさん@お腹いっぱい。:03/03/15 13:11
毒にも薬にもならんインタビューだな、と批判してみる。
もっと毒づいてくれればスラドとしても面白かっただが。

137 :名無しさん@お腹いっぱい。:03/03/15 13:12
俺としては金光特集きぼんぬ。

138 :名無しさん@お腹いっぱい。:03/03/15 18:56
どもっ!

139 :名無しさん@お腹いっぱい。:03/03/15 21:07
ruby はハッシュと配列が別扱いなんだねぇ。。。
ちょっと萎え


140 :名無しさん@お腹いっぱい。:03/03/15 21:11
そりゃ配列とハッシュは別物だろう…って一体何を期待してたんだ?

141 :名無しさん@お腹いっぱい。:03/03/15 21:18
>>139
漏れは PHP とかの方が萎えなのだが、
なんでハッシュと配列が一緒くたのほうが良いの?

142 :名無しさん@お腹いっぱい。:03/03/15 21:48
>>139
awk とかは同じ扱いだよね。

ハッシュは実装方法なので「連想配列と配列」っていったほうが適当かも。


143 :名無しさん@お腹いっぱい。:03/03/15 23:30
>139
ハッシュだけ使ってれば良いのでは?

144 :名無しさん@お腹いっぱい。:03/03/15 23:55
Javascript も同じ扱いだね。
自分でそういうクラス作ればいいんじゃない。

145 :名無しさん@お腹いっぱい。:03/03/15 23:55
>139
遅いじゃん。

146 :名無しさん@お腹いっぱい。:03/03/16 13:32
Array#assoc あるし

147 :名無しさん@お腹いっぱい。:03/03/17 10:20
じゃあ、あいだを取って全部リストで

148 :名無しさん@お腹いっぱい。:03/03/18 05:11
rubyをメジャーにするには
有名なゲーム作ったプログラマが
「このゲームはrubyが無ければ実現
不可能でした」と話せばイイ!と。

149 :名無しさん@お腹いっぱい。:03/03/18 11:03
そんなんでメジャーになった言語なんてあるのか?


150 :名無しさん@お腹いっぱい。:03/03/18 20:37
perlが無ければ情報社会の普及はありえませんでした。

151 :名無しさん@お腹いっぱい。:03/03/18 20:46
rubyが無ければOOPSの布教はありえませんでした。

152 :名無しさん@お腹いっぱい。:03/03/18 20:47
Object Oriented Play Station?

153 :名無しさん@お腹いっぱい。:03/03/18 21:17
ゲームの種類にもよるだろうけど、
ソースの隠蔽ができないとちょっとアレだと思うが。

ウィザードリィみたいなゲームをコンソールで作るのは、
いい腕試し暇つぶしになるかモナ。

154 :名無しさん@お腹いっぱい。:03/03/18 21:19
っつーかrubyは今でもメジャーでしょ。超メジャーじゃないだけで。

155 :名無しさん@お腹いっぱい。:03/03/18 21:33
>>153
パズルとかアクションとかシミュレーションとか、
ネタバレ関係ないようなゲームならソース見えても全然問題ないよね。

156 :名無しさん@お腹いっぱい。:03/03/18 22:25
連想配列つかえる言語って、ハッシュと配列を区別無く使えるものが
多いのでちょっとビツクリ


157 :名無しさん@お腹いっぱい。:03/03/18 23:00
>>156
多いんだ。初めて知ったよ。
awk/perl/ruby しか知らないからなあ。
この3つだと awk だけになって少数派になってしまう。

158 :名無しさん@お腹いっぱい。:03/03/18 23:20
rubyでエロゲームを書け。

159 :名無しさん@お腹いっぱい。:03/03/19 01:01
>>157

ruby は perl から派生してるからだろ(w


160 :名無しさん@お腹いっぱい。:03/03/19 17:14
luaもそうじゃないカナ
ツカッタコトナイケド

161 :名無しさん@お腹いっぱい。:03/03/19 18:58
もしよろしければ質問に答えてください。

Rubyを256倍使うための本 魔道編 を読んで、
RDindexを導入しようとしています。
インストールの手順はつまずきながらも何とかこなしました。
ところが、M-[tab]で補完をしてはくれるのですが、
F1-f でドキュメントをみようとする場合には補完機能が働かず、
またクラス名を完全に打ち込んでも、
Wrong type argument: integer-or-marker-p, nil
といわれてしまいます。

補完機能を働かせ、ドキュメントを参照するにはどうしたら良いでしょうか。


162 :名無しさん@お腹いっぱい。:03/03/19 22:16
ruby.help!!

とかか?(w


163 :スレの空気読めなくて悪いが:03/03/20 01:36
apache、erubyな環境で、<%print cgi.param%>とかできるんだねぇ。
気づかなかった。
っていうかこれって(rubyなcgiをうじうじ書くより)革命的に安楽に感じるのは、俺だけ?

164 :名無しさん@お腹いっぱい。:03/03/20 02:45
<%= cgi.param%>

165 :名無しさん@お腹いっぱい。:03/03/20 03:37
erubyのPHPもどきがなんとなく気に入らないから
CGI.rb + html-template使ってる

166 :名無しさん@お腹いっぱい。:03/03/20 04:14
eRuby って Apache2 だと REMOTE_USER とかのメタ変数が
ことごとく取得できない問題とか無かったっけ?

167 :名無しさん@お腹いっぱい。:03/03/20 18:08
apache2は必要なのか?と書いてみる

168 :名無しさん@お腹いっぱい。:03/03/20 18:17
むしろ REMOTE_USER は必要なのかと

169 :名無しさん@お腹いっぱい。:03/03/20 18:58
>>167
それもそうでつね。

>>168
それが原因で Apache2 で影舞が動かなかったとかなんとかいう話があったので。

170 :名無しさん@お腹いっぱい。:03/03/20 23:07
まぁ、遅くても良い用途にはいいかもなぁ?(w


171 :ヽ(´ー`)ノ:03/03/20 23:16
>>170
高負荷がかかるならハイパフォーマンスって聞いたんだけど、デマ?

172 :名無しさん@お腹いっぱい。:03/03/21 00:30
んなわけね〜だろ〜?(w


173 :名無しさん@お腹いっぱい。:03/03/21 00:40
apache2の新機能
http://itb-tech.itboost.co.jp/inst/apache2_new_features.php

で、実際のところ、apache2+eruby+mod_rubyとかの使用感はどうなのよ?

174 :名無しさん@お腹いっぱい。:03/03/21 18:13
rubyって素人っぽくて洗練されてないところがいいのかなぁ?(w


175 :名無しさん@お腹いっぱい。:03/03/21 22:27
>>174
それってperlの事だろ。

176 :名無しさん@お腹いっぱい。:03/03/21 23:31
影舞イイ!

177 :名無しさん@お腹いっぱい。:03/03/22 12:47
良いんだろうけど、使い道ないのが悲しい。

178 :名無しさん@お腹いっぱい。:03/03/22 21:55
>>175

有る意味perlは暗号めいててそれこそ「玄人」って感じ(w


179 :名無しさん@お腹いっぱい。:03/03/22 22:40
このスレでは特徴的な語尾だな(w

180 :名無しさん@お腹いっぱい。:03/03/22 23:51
>>179
おまえもなぁ〜(w


181 :名無しさん:03/03/23 01:18
[a or b] ってのはなぜエラー? [(a or b)] と書かねばならないようだが。

182 :名無しさん@お腹いっぱい。:03/03/23 03:02
>>178
xが演算子なのをどう解釈しろというのか(w

183 :名無しさん@お腹いっぱい。:03/03/23 04:03
>>181
rubyは演算子の順繰り規則がおかしい

184 :名無しさん@お腹いっぱい。:03/03/23 04:46
>181 [ ] の中には expr はおけない
a or b は expr で (a or b) は arg
ruby sample/exyacc.rb parse.y

185 :名無しさん@お腹いっぱい。:03/03/23 09:35
あと、配列とハッシュは別


186 :名無しさん@お腹いっぱい。:03/03/23 10:42
rubyの今の構文規則って無茶苦茶だよね。
perlと大して変わらん。

187 :名無しさん@お腹いっぱい。:03/03/23 11:06
と思うのは言語理論を学んだ事の無い香具師がいいそうなこと。

# それほど立派ではないけど perl とは善し悪しは別として
# 大きく違う。

188 :ヽ(´ー`)ノ:03/03/23 11:26
>>186
どこら辺がどう無茶苦茶なのか説明してほしい。Ruby 勉強しよーかなぁと
思ってこのスレずっと読んでるので。

189 :名無しさん@お腹いっぱい。:03/03/23 11:49
>>188
煽ってるだけなので真に受けないように

190 :名無しさん:03/03/23 12:23
>>184
> >181 [ ] の中には expr はおけない
> a or b は expr で (a or b) は arg
> ruby sample/exyacc.rb parse.y

いやもちろんソースは見たんだけど、なぜそうなっているのかがわからなかっ
たので。


191 :名無しさん@お腹いっぱい。:03/03/23 14:17
>>190
「右辺」「引数」「配列要素」を一致させておくと、

x = foo y or bar z #≡ (x = foo(y)) or (bar(z))

と同じ規則で or が配列要素からは除外されると説明できる。

192 :名無しさん@お腹いっぱい。:03/03/23 17:03
自分の感想では、rubyはコアと呼ばれる部分が曖昧な上
いろんな機能をかなりなペースで拡張しつづけているので、
それぞれの機能を書き方がかな〜りいい加減、というか思い付
きっていう感じで付け加えているような気がしてならない。


193 :名無しさん@お腹いっぱい。:03/03/23 17:25
>>192
あははっ!ホントその通りだね!あははっ!

194 :名無しさん@お腹いっぱい。:03/03/23 17:32
(´-`).。oO(楽しそうだなぁ……)

195 :名無しさん@お腹いっぱい。:03/03/23 17:40
(´-`).。oO(春だからねぇ……)

196 :名無しさん@お腹いっぱい。:03/03/23 17:58
(´-`).。oO(春厨がことごとく花粉症にかかりますように……)

197 :名無しさん@お腹いっぱい。:03/03/24 02:14
(´-`).。oO(漏れも1つくらい言語覚えたいなぁ〜)

198 :名無しさん@お腹いっぱい。:03/03/24 02:27
(´-`).。oO(nullpo)

199 :名無しさん@お腹いっぱい。:03/03/24 08:25
(´-`).。oO(nil)

200 :名無しさん@お腹いっぱい。:03/03/24 10:02
(´-`).。oO(ガッ>>198)

201 :名無しさん@お腹いっぱい。:03/03/24 18:20
Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook?
Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook! Ook! Ook? Ook!
Ook. Ook? Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook?
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook?
Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook! Ook.
Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook! Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook.
Ook! Ook.

202 :名無しさん@お腹いっぱい。:03/03/24 20:17
ぬるぽぬるぽぬるぽぬるぽぬるぬぬるぽぬぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬぬるぽぬるぬる
ぬぬるぬるぽぬぬるぬぬぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬぬるぬるぬぬるぬぬるぽ
ぬるぬるぽぬるぽぬぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぬぬるぽぬぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬぬるぽぬるぬるぬぬるぬるぽぬぬるぬぬぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬぬるぬるぬぬるぬ
ぬるぽぬるぽぬるぽぬるぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぬるぽぬるぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぬるぽぬるぽぬぬるぽぬぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぬぬぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬぬるぬるぬぬるぬぬるぽぬるぽぬるぽぬるぽぬるぽぬるぬるぽぬ
ぬるぽぬぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぬるぽ
ぬるぽぬぬるぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぬるぽぬる
ぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぽぬるぬるぬるぬる
ぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぽぬるぽぬぬるぽ
ぬるぽぬるぬるぽ


203 :名無しさん@お腹いっぱい。:03/03/24 20:47
春まっさかりですな。

204 :名無しさん@お腹いっぱい。:03/03/24 20:53
REXML の XPath ってどう?
まともに使えるのか気になるんだけど…。

205 :名無しさん@お腹いっぱい。:03/03/26 23:46
誰かruby+mysql本書いてみなよ。
ちょっとは売れるぜ。

206 :名無しさん@お腹いっぱい。:03/03/26 23:54
postgresqlなら…

207 :名無しさん@お腹いっぱい。:03/03/27 01:41
>>205
誰が書いてもあれよりはマシな本になるだろうな。

208 :名無しさん@お腹いっぱい。:03/03/27 02:53
>>207
そんなにヒドかったのか?
注文しようかな、と思ってたんだが…。

209 :名無しさん@お腹いっぱい。:03/03/27 05:38
ワラタ。
http://www.cbook24.com/bm_detail.asp?sku=4798005150

210 :名無しさん@お腹いっぱい。:03/03/27 11:15
>>209
こんなの出すのか。奇書・DQN本マニアの漏れとしては買わないわけにはいかないな。

211 :初心者:03/03/27 14:15
p = a とすると、
p はオブジェクト 
= は p のインスタンスメソッドとして認識されてるんですよね。
つまり、この場合、一つ目をオブジェクト、二つ目をインスタンスメソッドと認識しているんですよね。

それじゃあ、
p a
は、なぜ、pをメソッド、aを引数として、認識しているんでしょうか?
この規則を書いたページってないですか?

P.S.
pに値を代入して、p pとか、p = aとか、p =a とかしだすと、
なにがなにやらわからなくなりました。

212 :名無しさん@お腹いっぱい。:03/03/27 14:18
RubyHackingGuide 片手に parse.y 読むしかない。

213 :名無しさん@お腹いっぱい。:03/03/27 17:06
>>211
リファレンスマニュアルの「組込み関数」の冒頭を見ましょう。
p は Kernel モジュールのモジュール関数なわけですが、
Kernel モジュールのメソッドはどこからでも関数形式で呼べるので、それを踏まえて、
↓これらはみな同じと考えればわかるかな?

p a
p(a)
Kernel.p(a)

214 :名無しさん@お腹いっぱい。:03/03/27 17:19
>>211
=はメソッドではない。
代入は、メソッドコールとは別の文法要素。


215 :名無しさん@お腹いっぱい。:03/03/27 17:43
オライリーのMySQL盆、149頁、、、
>まだCGIプログラムにどの言語を使うか決めかねている読者には、
>Rubyを検討されることもお勧めする。

と書きつつ、この本にはRubyスクリプトがちっとも出てこない罠。

216 :名無しさん@お腹いっぱい。:03/03/27 17:43
金光のサイト、あれはいかがなものか?

217 :名無しさん@お腹いっぱい。:03/03/27 19:56
>>211
まぁ、思い付きの集大成みたいなものだから(以下略


218 :名無しさん@お腹いっぱい。:03/03/28 01:22
>>217
まさかそれで煽ってるつもりなのか?

219 :初心者:03/03/28 02:57
>>213
p a
p(a)
Kernel.p(a)
わかりました。

>>214
なるほど。僕の言いたかったのは
つまり
obj.a = val の時の a=
ってことですね。


どうもありがとうございました

220 :初心者:03/03/28 03:19
あと、演算子の定義って話を読んで、
疑問は解消されました。




221 :名無しさん@お腹いっぱい。:03/03/28 03:52
>>219
> obj.a = val の時の a=
> ってことですね。

いいたいことがよく分からないが、
一般にメソッド呼び出し obj.m(x,y) は obj.__send__(:m, x, y) でも行なえる。
obj.a = val は obj.__send__(:a=, val) ともできる。
また a[b] = c は a.__send__(:[]=, b, c) ともできる。
しかし変数への代入はメソッドではないので __send__ できない。

222 :初心者:03/03/28 15:48
>>221
わかったと言いつつ、ちょっとおかしな気がするところがあります
class Test
def initialize
@moji = "Ruby"
end
def echo
print @moji
end
def moji= (val)
@moji = val
end
end
というクラスを作ったとき、
n = Test.newとした後
n.moji= "perl" # moji= のインスタンスメソッドを使ってるんですよね
n.moji = "perl" # これもmoji=のインスタンスメソッドを使ってるんですよね
n.echo #echo のインスタンスメソッドを使ってるんですよね。
n.e cho #echo のインスタンスメソッドを使ってくれません(エラー)

つまり、インスタンスメソッドの名前の最後に"="のあるメソッドは
使うときに、=の前にスペースを入れてもいいという規則があるんですか?

223 :初心者=222:03/03/28 15:54
>わかったと言いつつ、ちょっとおかしな気がするところがあります
わかったというのは、>>220で言ってる、疑問が解消されたと言ったことに対してです


224 :名無しさん@お腹いっぱい。:03/03/28 16:02
http://homepage3.nifty.com/digikei/sample/sample.html

225 :名無しさん@お腹いっぱい。:03/03/28 16:22
>>222
まずは、リファレンスマニュアルの「演算子式」をじっくり読みましょう。

226 :名無しさん@お腹いっぱい。:03/03/28 16:31
>>222
> つまり、インスタンスメソッドの名前の最後に"="のあるメソッドは
> 使うときに、=の前にスペースを入れてもいいという規則があるんですか?

yes
[]= も同様。そもそも [] も特別だが。

また、
a += b は a = a + b であり a + b は a.+(b) と等価なので
a[k] += b は a[k] = a[k] + b であり a[k] + b は a[k].+(b) と等価。
さらにいえば a[k].+(b) は a.[](k).+(b) と等価。結局、
a[k] += b は a.[]=(k, a.[](k).+(b)) と等価。

227 :初心者:03/03/28 17:42
>>225,226
ありがとうございました。
今度こそ、疑問が解消されたようです。


228 :名無しさん@お腹いっぱい。:03/03/28 23:32
>>226
まさに集大成!(w


229 :名無しさん@お腹いっぱい。:03/03/29 03:46
FreeBSD5.0で、perlが/usr/local/binに降格されてるのはperl滅亡の前兆。

230 :名無しさん@お腹いっぱい。:03/03/29 04:50
いつのネタだよ

231 :名無しさん@お腹いっぱい。:03/03/29 23:31
rubyをマスターしようという目的のわたし、1.8.0p2にしちゃおうか迷い中……


232 :ぼん:03/03/29 23:39
http://www.bunbun.ne.jp/~tk0608/
ロンブーの温泉カミングアウト未放送 コイケエイコはみ出てます。。

233 :名無しさん@お腹いっぱい。:03/03/30 00:25
>>231
よろしいんじゃないでしょうか。

1.8.0 の make が通らないマイナー OS の悲しさよ・・・

234 :名無しさん@お腹いっぱい。:03/03/30 00:59
というわけで、しゃりしゃりとbuild中 > 1.8.0-preview2


235 :名無しさん@お腹いっぱい。:03/03/30 02:20
でもさ、UNIXの伝統からしてrubyよりもperlだろ。

rubyなんてふきゅうするかな。
まず最初に、*BSDにrubyを標準で載せることを訴えていくべだと思うよ。

236 :名無しさん@お腹いっぱい。:03/03/30 02:22
訴えていかなくても良い物は自然と普及していくものです。

237 :名無しさん@お腹いっぱい。:03/03/30 02:35
>>236
はいはい、お花畑でおねんねしてなさい。

238 :名無しさん@お腹いっぱい。:03/03/30 02:37
>>235
perlをrubyに置き換えたLinuxディストロってないのかな。

にしても、perlがUNIXの伝統ね……ま、最近の人からはそう見えるのかもね。

239 :名無しさん@お腹いっぱい。:03/03/30 02:40
>>238
別に Perl を入れずに Ruby を入れればイイんじゃないの?


240 :名無しさん@お腹いっぱい。:03/03/30 02:48
>>238
俺から見ればそうだよ。
標準でBSDに載ってるでしょ。

241 :名無しさん@お腹いっぱい。:03/03/30 02:50
>>235
以前FreeBSDのports-jpで似たような話が出てました。
http://home.jp.freebsd.org/cgi-bin/showmail/ports-jp/11304
http://home.jp.freebsd.org/cgi-bin/showmail/ports-jp/11305
http://home.jp.freebsd.org/cgi-bin/showmail/ports-jp/11307
http://home.jp.freebsd.org/cgi-bin/showmail/ports-jp/11308

*BSDという話なら、製品に組み込まれたRubyってことで
Mac OS Xに注目してみるとか。
Mac OS XでのRubyな話題ってありますか?


242 :236:03/03/30 03:11
>>237
漏れ、何か変なこと言いましたか?

243 :名無しさん@お腹いっぱい。:03/03/30 03:23
>>240
ぼくは、Perlってのがすげえぜ、と友だち連中にプッシュしてた世代なのだが、
年寄り連中に顰蹙買ってた。「UNIXマインドの対極にあるPerlでUNIXを穢すな!」
ってね。

244 :名無しさん@お腹いっぱい。:03/03/30 04:08
>>238
それがまずいので外されつつあるのだが。。。

245 :名無しさん@お腹いっぱい。:03/03/30 04:13
>>244
「それ」とは?

246 :名無しさん@お腹いっぱい。:03/03/30 06:15
>>244>>240 へのレスだったに三円。

247 :名無しさん@お腹いっぱい。:03/03/30 10:50
そうやって話をぼかして自分の間違いを正当化するんだね。


248 :名無しさん@お腹いっぱい。:03/03/30 11:53
そんなことより、Lokiの移植まだ〜
全部はむりぽだったら、Loki::AssocVectorだけで良いから速く移植してよ
つーか、Rubyのfind糞遅すぎ

なんとかしろや ボケども

249 :名無しさん@お腹いっぱい。:03/03/30 12:11
>>238
ももんがりなっくす、とか。

250 :名無しさん@お腹いっぱい。:03/03/30 13:01
>>248
swig でも使って自分でやれば。

251 :235:03/03/30 14:51
でも、せっかく*BSDに標準でperlが載っているし、わざわざrubyを外から持ってきて
make installしてまでして使うメリットは何よ。

やっぱさ、何だかんだ云ってもrubyなんて所詮は、*BSDからは周辺部分の「付け足し」
としか思われてないんじゃないかな。

いくらrubyが良かったりしてココでもrubyの良さを訴えてる人とか利用者が多くても、
世界中には今だにperlの支持者が圧倒的に多いわけで、、、

viが無くならないのと一緒だよ。現に俺は、nvi使ってるしね。

252 :名無しさん@お腹いっぱい。:03/03/30 15:10
FreeBSD の portsupgrade って ruby で書かれてなかったっけ。



253 :名無しさん@お腹いっぱい。:03/03/30 15:11
標準ではないだろう。

254 :名無しさん@お腹いっぱい。:03/03/30 16:25
>>251
あなたはマジョリティーだとかや標準だとかいうだけで
言語を選ぶんですか?

255 :名無しさん@お腹いっぱい。:03/03/30 16:43
選ぶのは、思い付きかな?
仕様といっしょで(w


256 :名無しさん@お腹いっぱい。:03/03/30 17:47
>>251
問1
perlが標準で搭載されている*BSD、標準で搭載されていない*BSDを列挙せよ。
また、rubyが標準で搭載されている*BSD、標準で搭載されていない*BSDを列挙せよ。

問2
問1の回答から、*BSDにおけるスクリプト言語の標準性について考察せよ。



257 :名無しさん@お腹いっぱい。:03/03/30 19:26
>251
Rubyをわざわざ使うメリットはない

258 :名無しさん@お腹いっぱい。:03/03/30 19:27
そういえば、なんでruby使い始めたんだっけかなぁ。

259 :名無しさん@お腹いっぱい。:03/03/30 20:09
>>256
とりあえず、perlもrubyも FreeBSD では標準じゃなく、MacOS X では標準
だね。

260 :名無しさん@お腹いっぱい。:03/03/30 20:18
osxと仲がいいなんて、○○丸出し!(ww


261 :(* ̄3 ̄)y─┛ ◆8g66hmRyek :03/03/30 20:23
http://kotubunet.hp.infoseek.co.jp/king.htm

262 :名無しさん@お腹いっぱい。:03/03/30 20:30
OpenBSDでは、perl5.8が標準だよな。

263 :名無しさん@お腹いっぱい。:03/03/30 20:39
いっそうのこと、perlで書かれてる部分をCに書きなおせば良いジャン。
そうすれば、perlを標準でいれる必要無し。

264 :名無しさん@お腹いっぱい。:03/03/30 22:07
Perlを排除したFreeBSD5系列では、Perlで書かれていた
システムスクリプトはどうなったの? shスクリプトになった?

265 :名無しさん@お腹いっぱい。:03/03/30 22:16
>>264
http://www.jp.freebsd.org/www.FreeBSD.org/ja/releases/5.0R/relnotes-i386.html
>ベースシステムの Perl 依存性を減らすため、 多くのユーティリティが
>シェルスクリプトや C プログラムで書き直されました
>(書き直されたユーティリティは、リリースノート中に記載されています)。

266 :名無しさん@お腹いっぱい。:03/03/30 22:35
>>265
なるほど、見てみると、C言語で書き直したのが多いようですね。

267 :名無しさん@お腹いっぱい。:03/03/30 22:39
「いっそうのこと」

268 :名無しさん@お腹いっぱい。:03/03/30 23:07
いっそ【一層】(副)〔「いっそう」の転〕

269 :名無しさん@お腹いっぱい。:03/03/30 23:53
perl馬鹿っているよな。

270 :名無しさん@お腹いっぱい。:03/03/31 00:01
perl は馬でも鹿でもない!!!

271 :名無しさん@お腹いっぱい。:03/03/31 00:26
rubyはいろいろと本かったりしてみたが、作りというか思想が雑すぎてチトやり切れん部分も正直ある。


272 :名無しさん@お腹いっぱい。:03/03/31 00:41
>>271 どこらへんでしょう?

273 :名無しさん@お腹いっぱい。:03/03/31 02:57
>>271
がんばれ。

274 :名無しさん@お腹いっぱい。:03/03/31 03:56
>>271
なら Ruby やめとけ

275 :名無しさん@Emacs:03/03/31 08:27
>271は何か他の言語と混同しているのではないだろうか。

276 :名無しさん@お腹いっぱい。:03/03/31 19:13
>>271
ruby本に雑なのが多い、っていう感想では、同意。
使えるruby本って2〜3冊くらいのような気がする。
リファレンスマニュアルとgoogle先生が大半の解決法を教えてくれるし。
そういう意味でも金光タンのピエロっぷりは痛々しい。

277 :名無しさん:03/03/31 20:49
ディアゴスティーニと契約して月刊Ruby256シリーズを出して欲しい。

278 :名無しさん@Emacs:03/03/31 21:07
>>277
256ヵ月もネタが続かないかも


279 :名無しさん@お腹いっぱい。:03/03/31 21:44
rubyを始めるにあたって、
『プログラミングRuby』
『Rubyアプリケーションプログラミング』
の2冊を入手したわたしです。


280 :名無しさん@お腹いっぱい。:03/03/31 21:49
にしても、拡張ライブラリのドキュメントをもちっと
システマティックにあつかえるフレームワークはない
ものか……rubydocキボウ……

あとなんだっけ、ほれ、クラスビューアーだっけ?
そういうアプリケーションはないもんかと思うことしきり。

281 :名無しさん@お腹いっぱい。:03/03/31 22:11
>>276
金光タンって言葉よく出て来るけど何ですか?


282 :名無しさん@お腹いっぱい。:03/03/31 22:36
>>281
http://www.google.co.jp/search?q=%82%C7%82%E0%82%C1+site%3Ablade.nagaokaut.ac.jp


283 :名無しさん@お腹いっぱい。:03/03/31 22:37
キチガイ?

284 :初心者:03/03/31 23:03
irb(main):001:0> a = 0.1
=> 0.1
irb(main):002:0> b = 0.2
=> 0.2
irb(main):003:0> p ( 0.3 == a + b)
false
=> nil

これって、二進数で計算してるから、丸め誤差がどうのこうのって
書いてあって、Rationalか何かを使うようにかいてあるけど
標準で、きちんと動作するようにして欲しいのですが。。

これってかなりの落し穴の気がする。

ほかにも、数字の扱いで、マニュアルに書いてない落し穴ってありますか

285 :名無しさん@お腹いっぱい。:03/03/31 23:08
「きちんと動作」してるじゃん。嫌なら Rational 使えや。

286 :名無しさん@お腹いっぱい。:03/03/31 23:10
>>284
なるほど、C とかの経験のあるひとには、
リファレンスマニュアルの Float の精度に関する説明で十分だと思うけど、
そうでないひとにはピンとこないのかもね。

287 :名無しさん@お腹いっぱい。:03/03/31 23:17
「数字の扱い」

288 :名無しさん@お腹いっぱい。:03/03/31 23:25
数値の扱い、ね。

289 :初心者がつまづくのは理解できるが:03/04/01 00:15
>>284
数値の多少を問わず、オラオラッと扱えるruby。
matzは数学に距離を置いている人だし、開発の初期段階の展開によっては、、、
ひょっとしたら「あったかもしれない実装」だと思うのだが、、、いまさらっぽ。
まぁ外部ライブラリで問題が解決できるなら、それで解決するのがruby的と思われ。
逆を言えば、外部ライブラリを使いたくない理由ってあるのかね?

290 :名無しさん@お腹いっぱい。:03/04/01 00:26
>>289
やっぱ、「誰にとって『驚き最小』か?」って問題のような気がする。
現状の Ruby は、UNIX や C の常識が身に付いてるひとには驚き最小。

291 :284:03/04/01 01:17
結局、なぜ一致しないのか、よくわかりません。
C言語でもなんでもいいので、上の様になった理由がわかるようなページってないですか?

292 :名無しさん@お腹いっぱい。:03/04/01 01:20
もっと基本を勉強しろ。

293 :名無しさん:03/04/01 01:30
0.1を2進数であらわすには無限の桁数が必要。今あるコンピュータは
有限のメモリしかないのでどこかで切り捨てないといけない。




294 :名無しさん@お腹いっぱい。:03/04/01 01:31
>291
浮動小数点レジスタがどうのこうの、という話になって
プロセッサが違うと違う話になったりするから
追っかけても深みにはまる予感がする。
C でも float、double で本格的な実数の計算しようなんて
ハナから考えないし。

a+b を表示させると 0.3 かや?

295 :284:03/04/01 01:47
>>294
それもわかりません。
a + b がなぜ、0.3なんでしょう。
もしかして、a + b を二進数で表すと、正確には、0.3に二進数では
ないけれど、その正確に0.3でない二進数の値を十進数に直すと
0.3になるってことですか??

それいぜんに、たとえば、2進数で10進数の0.2ってどう表すんでしょうか?
0.01でしょうか? でも、それじゃあ、切り捨てるほどの桁数じゃないですね。

296 :名無しさん@お腹いっぱい。:03/04/01 01:55
難しく考えすぎ。

297 :名無しさん@お腹いっぱい。:03/04/01 01:57
>295
とりあえずオチケツ!

> irb(main):001:0> a = 0.1
> => 0.1
> irb(main):002:0> b = 0.2
> => 0.2
> irb(main):003:0> p ( 0.3 == a + b)
> false
> => nil

a + b は 0.3 になって欲しかったんだよな?それがなってなくてウギャー
なわけだろ?
だから a + b を 0.3 と比較するのでなく、直に表示してみたら誤差を
含んだ値になってたりしないか、と訊きたかったわけよ。

> それいぜんに、たとえば、2進数で10進数の0.2ってどう表すんでしょうか?

これが分かればこのナゾは原理的なレベルで解ける。レッツ グーグル!
(てか、俺この理屈忘れちゃったので説明できまっしぇんスマ)

298 :名無しさん@お腹いっぱい。:03/04/01 02:01
ruby 云々以前の話だよなあ。

299 :284:03/04/01 02:24
irb(main):001:0> a = 0.1
=> 0.1
irb(main):002:0> b = 0.2
=> 0.2
irb(main):003:0> p ( a + b )
0.3
=> nil

です。

もうちょっと、ぐ具ってみます。

300 :名無しさん@お腹いっぱい。:03/04/01 02:25
>>295
$ echo 'obase=2; scale=16; 1/10; 2/10; 3/10' | bc
.000110011001100110011001100110011001100110011001100110
.001100110011001100110011001100110011001100110011001100
.010011001100110011001100110011001100110011001100110011

301 :名無しさん:03/04/01 02:38
0.1 = 2^-4 + 2^-5 + ....

ちなみに
0.5 + 0.25 == 0.75
=> true
となる。

>>290
File.creat がないぞ!!(笑

302 :284:03/04/01 02:55
>>300
なるほど、2進数では小数第1位が2^-1 2位が2^-2... ってことですね。

じゃあ、どういう10進数で表した数字が2進数に直した時に、無限につづくか
(正確には、よく知らんが30桁位?までに収まらないか)
を考えて、それを使わなかったら丸めの誤差のない10進数を使えるってことですね。
これって、どんな数字だろう。。

わからないので、小数の計算がでてきたら、Rational使うことにします。


303 :名無しさん@お腹いっぱい。:03/04/01 03:17
>>302
xが有理数のとき
xが2進で有限小数ならばxは10進で有限小数
xが10進で循環小数ならばxは2進で循環小数
逆はいずれも不成立。Rational(1,10)はどちらの反例でもある。
つうか、いまは有理数が循環小数で書けることの証明って高校でやらないの?

304 :284:03/04/01 03:27
夜おそくまですみませんでした。
みなさん、ありがとうございました。

305 :284:03/04/01 03:36
ちなみにJavaでも同じになって、すごく悲しい気分です。
いままで気がつかなかった。。

public class test{
public static void main(String[] args){
double a = 0.1;
double b = 0.2;
double c;
c = a + b;
if (c == 0.3) System.out.println("true");
else System.out.println("false");
}
}

abc@bsd01> java test
false


306 :名無しさん@お腹いっぱい。:03/04/01 03:41
>>305
C でも同じでしょ。

307 :名無しさん@お腹いっぱい。:03/04/01 03:42
10 進数で循環小数になる数も
別の進数で循環しないこともあるよ。
例えば 1/3 は 10 進では 0.3333... だけど、
3 進数では 0.1 になる。

308 :284:03/04/01 03:49
大事なこと聞くの忘れてた。

Rubyでは 0.1 + 0.2 を 0.3 と"表示"してくれる。

一方、Javaでかいた、305の中で、System.out.println(c);を入れると、
0.1 + 0.2 の値を 0.30000000000000004 と教えてくれて、
Javaの方が納得できるんですが

なぜ、Rubyでは0.3と表示されるんでしょうか?

309 :名無しさん@お腹いっぱい。:03/04/01 03:49
単純な数学の問題だな。
最近は高校でn進数のこととか教えないのかな?

310 :名無しさん@お腹いっぱい。:03/04/01 03:54
x が n 進で循環小数で n が m で割り切れるなら x は m 進でも循環小数
10 は 2 と 5 で割り切れるから 10 進で循環小数なら 2 進でも 5 進でも循環小数
x が m 進で有限小数で n が m で割り切れるなら x は n 進でも有限小数
2 進で有限小数なら 4 進, 6 進, 8 進, 10 進, … でも有限小数

>>308
おんなじもんはrubyでも出せるけどそれだって正しい値ではないよ
$ ruby -e 'printf("%.17f\n", 0.1+0.2)'
0.30000000000000004
どれが便利かは状況に依存するからベストなフォーマットはないのよ

311 :284:03/04/01 04:17
>>310
わかりました。
つまり、Rubyは、標準の設定では小数点以下15桁くらい?までを
表示するようになってて、さらに、最後に0が続くと0は表示しない、
みたいな設定になってるわけですね。
それで、0.3と表示されてるわけですね。

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

312 :名無しさん@お腹いっぱい。:03/04/01 04:20
>>311
そういうことが知りたいのならソースみればいいじゃん
numeric.c の flo_to_s()

313 :名無しさん@お腹いっぱい。:03/04/01 04:36
>>312
そういうときドキュメントでなくてソースを見なくてはいけないというのはいかがなものか、
>>284 は言いたいのだろう。

314 :名無しさん@お腹いっぱい。:03/04/01 04:51
>>313
もっともな意見ではあるが、言葉で説明するには複雑過ぎる気もする

315 :名無しさん@お腹いっぱい。:03/04/01 05:02
ただ、これだけ抽象的な言語なんだから、
分数/複素数くらいまでネイティヴでサポートしてよというのも
ある意味同意できる。

316 :名無しさん@お腹いっぱい。:03/04/01 05:59
ある意味というかさっさとサポートして欲しい

317 :名無しさん@お腹いっぱい。:03/04/01 06:49
>>316
まあ、良い名前が見つからない限りサポートしないけどね。

318 :名無しさん@お腹いっぱい。:03/04/01 08:22
>>315
それを期待しない人間にとっては意図しない結果になる。
そういう動作をして欲しい香具師は require 'mathn' でもしとけってこった。

319 :名無しさん@お腹いっぱい。:03/04/01 09:46
分数の計算の仕方忘れちゃった
0.1 は 1/10
0.2 は 1/5
1/10 + 1/5 は 3/10
でいいんだっけ。
整数も混ざる場合、どういう書き方がいいんだろう?
1.3なら
13/10ですか?
1+3/10かな?
分数使える言語ってなんかあったっけ。

320 :名無しさん@お腹いっぱい。:03/04/01 10:42
>>319 釣られてみた
$ ruby -rmathn -rreadline -e 'puts eval $_.gsub(/(\d+)\.(\d+)/){"(#{$1+$2}/(10**#{$2.size}))"} while $_=Readline.readline("> ")'
> 1/10+1/5
3/10
> 1.3
13/10
> 1/10+1.3
7/5
> exit
$

321 :名無しさん@お腹いっぱい。:03/04/01 11:08
>>319
漏れは xyzzy で割り算しようとしてびっくりしたことがある。

322 :名無しさん@お腹いっぱい。:03/04/01 11:26
>319
> 分数使える言語ってなんかあったっけ。

scheme は有理数を扱える (実装もある)

323 :名無しさん@お腹いっぱい。:03/04/01 11:27
Common Lisp から来てるんだと思うけど

324 :321:03/04/01 13:56
>>323
ありゃ、そうなのか。 Emacs Lisp の方が邪道 (ってほどどもないか) なのかな。

325 :名無しさん@お腹いっぱい。:03/04/01 20:53
ruby-list だけど、
Kanbe 氏は何でエイプリルフールネタにマジレスしてるのかな…
それとも、あれはエイプリルフールネタじゃないの?

326 :名無しさん@お腹いっぱい。:03/04/01 21:17
>>325
あれは Kambe 氏のネタなわけだが。

327 :名無しさん@お腹いっぱい。:03/04/01 21:32
AhSKI出版局とか答えて欲しかった

328 :名無しさん@お腹いっぱい。:03/04/01 22:23
>>326
あ、そういうことか。早とちりした……。


329 :memo:03/04/01 22:38
migemo を ruby 1.8.0 + Meadow で動かすには
options[name.sub /^--/, ""] = arg

options[name.sub(/^--/, "")] = arg
にする

330 :名無しさん@お腹いっぱい。:03/04/01 23:19
>>290
おどろき最小はWIN棒達でしょう(W


331 :名無しさん@お腹いっぱい。:03/04/01 23:55
>>300 Rational に小数展開ないのはシャクなので書いてみた
「expandが停止する」ことの証明は「有理数は循環小数で表せる」の証明になる

require "rational"
class Rational
def expand(b=10)
raise ArgumentError, "#{b} > 36" if b > 36
x, n, d, v = abs, @numerator, @denominator, self < 0 ? "-" : ""
return v<<itos(n,b) if d == 1 or d == n
v << itos(n.div(d), b) << "."
quo, rem = [], []
until i = rem.rindex(n) do rem<<n; n *= b; q, n = n.divmod(d); quo<<q end
v<<"#{quo[0...i].map{|n| itos(n,b)}}(#{quo[i..-1].map{|n| itos(n,b)}})"
end

DIGIT36 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

def itos(n,b)
return "0" if n.zero?
v = ""
until n == 0 do r,q = n.divmod(b); v<<DIGIT36[q.to_i]; n = r end
v.reverse
end
end

puts Rational(1,10).expand(2) #--> 0.0(0011)

332 :名無しさん@お腹いっぱい。:03/04/02 12:00
SmallTalk は?
漏れも勉強中だけど。

(1/10) + (1/5)
3/10

(3/10) のインスタンス変数を表示すると、
numerator: 3
denominator: 10
となる。

(3/10) = ((1/10) + (1/5))
true
0.3 = (0.1 + 0.2)
false

((0.1 + 0.2) asFraction = 0.3)
true

(0.1 + 0.2) asFraction
3/10

すげぇ。どうやってんだ。


333 :名無しさん@お腹いっぱい。:03/04/02 15:02
分子と分母とわけて計算して
通分すれば簡単に実装できるよ。

334 :名無しさん@お腹いっぱい。:03/04/02 15:13
つうぶん
なんて久々に聞いた

335 :名無しさん@お腹いっぱい。:03/04/02 19:37
>>331
1.8だとitos(n,b)はn.to_s(b)でできる。ついでに正式採用きぼん。

336 :名無しさん@お腹いっぱい。:03/04/02 20:24
Ming の池上さんのサイトはどこいったんですか?

337 :名無しさん@お腹いっぱい。:03/04/02 20:30
>>332 GNU Smalltalk の実装みたけど誤差まみれだったよ。正直使いたくない。

require "rational"
class Float
 def asFraction
  n1=d0=0; n0=d1=1; abs=self.abs; eps=EPSILON*1024; x=abs;
  until x.infinite? or (n0.to_f/d0.to_f-abs).abs<eps do
   a=x.to_i; n2=n1; d2=d1; n1=n0; d1=d0; n0=n1*a+n2; d0=d1*a+d2; x=1/(x-a);
  end
  Rational(n0, d0)*(self<=>0);
 end
end

for i in -10..10 do p((i*0.1).asFraction) end

338 :名無しさん@お腹いっぱい。:03/04/02 20:52
Ruby使いはendの数どうやって数えてるの?

339 :名無しさん@お腹いっぱい。:03/04/02 21:00
>>338
読むときはインデントかな

340 :名無しさん@お腹いっぱい。:03/04/02 21:10
>338
数える必要性を感じている人は少ないと思う。
多くの場合、ソースの字下げで、読めばわかるとか。

数えるとすれば
puts hoge.scan(/.*?end.*?/).size
ええっと、違いますか???

341 :名無しさん@お腹いっぱい。:03/04/02 21:26
まじめにやるなら構文解析しないとだめです。

…けど数える必要ってあるの?

342 :名無しさん@お腹いっぱい。:03/04/02 21:28
endを数えるって対応をとるってことなんじゃないの

343 :名無しさん@お腹いっぱい。:03/04/02 21:30
irbとppを使ったindentきぼん

344 :名無しさん@お腹いっぱい。:03/04/02 23:14
end の数など lisp の ) に比べれば
物の数ではない。

345 :名無しさん@お腹いっぱい。:03/04/02 23:41
>>335
itos(n,3)はn.to_s(3)で出来ない: Rational(1,2).expand(3) #--> 0.(1)
ついでにRational#expandのuntilは最大denominator回まわるので現実的でないかも

require ">>331"
class Float
def to_rational
s,e,m=/(.{1})(.{11})(.{52})/.match([self].pack("G").unpack("B*").shift)[1,3]
(-1)**s.to_i * Rational("1#{m}".to_i(2),2**(1075-e.to_i(2)))
end
def expand(b=10) to_rational.expand(b) end
end
p 0.1.to_rational.denominator #-> 36028797018963968
p 0.1.expand(2) #-> 0.0001100110011001100110011001100110011001100110011001101(0)
p 0.1.expand(6) #-> 0.0333333333333333333334155230402135145022210202110335343(0)
p 0.1.expand(8) #-> 0.0631463146314631464(0)
p 0.1.expand(10)#-> 0.1000000000000000055511151231257827021181583404541015625(0)
p 0.1.expand(16)#-> 0.1999999999999A(0)
p 0.1.expand(3) #-> 禿しく遅い

346 :名無しさん@Meadow:03/04/03 00:40
super endキボンヌ


347 :名無しさん@お腹いっぱい。:03/04/03 00:49
>>346
スーパーカッコと違って使いにくそう
スーパーカッコもいまいち使い勝手悪かった

348 :名無しさん@お腹いっぱい。:03/04/03 00:53
[BUG] unknown node type 0
と出ました。
プログラムの意味にまったく影響しない空行1行を加えたら発生しなくなりました。
これ何?

349 :名無しさん@お腹いっぱい。:03/04/03 00:53
バージョンは ruby 1.8.0 (2003-03-03) [i386-cygwin]

350 :名無しさん@お腹いっぱい。:03/04/03 01:00
>>348
ホームページからバグレポートに送るべし

351 :346:03/04/03 01:25
>>347
すみません。lispは本の中でしか知りません。
end/閉じカッコは、emacsのruby-modeに任せています。

keyword/doで開いたのか、{で開いたのか覚えてないといけないのが、アレ。


352 :名無しさん@お腹いっぱい。:03/04/03 01:28
>>348
再現性無いとどうしようもないから、詳細も忘れずに

353 :名無しさん@お腹いっぱい。:03/04/03 02:35
>>351
1行で収まる自信のないときは do-end を使うようにしてる

354 :名無しさん@お腹いっぱい。:03/04/03 10:53
>>331 バグってたのでついでに>>345を止められるように桁数オプションをつけてみた
class Rational
def expand(b=10,w=nil)
raise ArgumentError, "#{b} > 36" if b > 36
n, d, v = @numerator, @denominator, self < 0 ? "-" : ""
return v<<itos(n,b) if d == 1 or d == n
v << itos(n.div(d), b) << "."
quo, rem, n = [], [], n.modulo(d)
if w
w.times do n *= b; q, n = n.divmod(d); quo<<q end
v<<quo.map{|n| itos(n,b)}.join
else
until i = rem.rindex(n) do rem<<n; n *= b; q, n = n.divmod(d); quo<<q end
v<<"#{quo[0...i].map{|n| itos(n,b)}}(#{quo[i..-1].map{|n| itos(n,b)}})"
end
end
end

355 :名無しさん@お腹いっぱい。:03/04/03 11:02
>>349
2003-03-03っていうと、これかもね。

Thu Mar 20 10:45:29 2003 Tanaka Akira <akr@m17n.org>

    * eval.c (bmcall): add volatile to avoid GC problem.


356 :346:03/04/03 12:21
>>353
まねすることにします。


357 :名無しさん@お腹いっぱい。:03/04/03 13:16
>353
ほかに「俺はこういうポリシーで使い分けてる」っていう実例があればきぼんぬ。

358 :名無しさん@お腹いっぱい。:03/04/04 17:46
むしろruby-mode.elでヒアドキュメントがインデントを壊さない方法を知りたい

359 :名無しさん@お腹いっぱい。:03/04/04 18:48
>>358

最近の入れてもダメ?
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/misc/ruby-mode.el


360 :名無しさん@お腹いっぱい。:03/04/04 19:44
def foo
  print(<<-EOS)
hoge
EOS
      end

こんな風にならない?

361 :名無しさん@お腹いっぱい。:03/04/04 21:58
本当だ。
オレはヒアドキュメントの時は () 付けないんで気付かなかった。

def foo
print <<-EOS
hoge
EOS
end



362 :名無しさん@お腹いっぱい。:03/04/05 00:19
他にもヒアドキュメント中に構文要素が入るとそのあとめんどう見てくれないとかね
def foo
  print <<-EOS
  rand() returns a random number lie in the interval [0.0,1.0).
ここらへんは invarid nest

363 :名無しさん@お腹いっぱい。:03/04/05 00:35
ruby-mode.el の最新版で、

Net::HTTP.start('www.2ch.net', 80){|http|

と書くと、その次のブロックのインデントがおかしくなりませんか?
do だと異常はありません。

364 :名無しさん@お腹いっぱい。:03/04/05 00:41
確かに。次のでも崩れる
foo(n){|i|
     ■ここに来る

365 :名無しさん@お腹いっぱい。:03/04/05 04:36
s.scan(%r|hoge|).each do |x|
の色付けが変

366 :名無しさん@お腹いっぱい。:03/04/05 19:52
まぁ、もとの言語仕様も変なので、あまりごちゃごちゃいわんでいいのでは?


367 :名無しさん@お腹いっぱい。:03/04/05 20:41
通りがかりの戯言だが、なんで直そうという話にならんの?あほ?

368 :名無しさん@お腹いっぱい。:03/04/05 22:36
言い出しっぺの>>367がパッチ出すべきだと思うがどうよ。

369 :名無しさん@お腹いっぱい。:03/04/06 01:00
通りがかりに作ってもらおうってのはどういう了見だよ(w

370 :名無しさん@お腹いっぱい。:03/04/06 02:10
>365
ruby使いはスキル無いから無理でつ

371 :名無しさん@お腹いっぱい。:03/04/06 02:43
( ´_ゝ`)プッ

372 :名無しさん@お腹いっぱい。:03/04/06 19:35
どうでもいいけど、なんで糞擦れ化するんだよ!


373 :名無しさん@お腹いっぱい。:03/04/06 19:42
>>372
>>3-7


374 :名無しさん@お腹いっぱい。:03/04/06 19:46
>>363-367
修正中。いや前から分かってはいたんだけど。


375 :名無しさん@お腹いっぱい。:03/04/06 19:47
>>374
サクーシャさん登場だ。

376 :名無しさん@お腹いっぱい。:03/04/06 20:12
>>336すまん、移動先書くの忘れてた。ttp://madscientist.jp/~ikegami/ruby/ming/に移動しています。

377 :金正日:03/04/06 20:14
   ,rn                 
  r「l l h.                / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  | 、. !j                | 
  ゝ .f         _      |  
  |  |       ,r'⌒  ⌒ヽ、.  │  http://www.saitama.gasuki.com/hangul/
  ,」  L_     f ,,r' ̄ ̄ヾ. ヽ. │   こんなのあったニダ
 ヾー‐' |     ゞ‐=H:=‐fー)r、)  | 
  |   じ、     ゙iー'・・ー' i.トソ   | 
  \    \.     l ; r==i; ,; |'  .人_ 
   \   ノリ^ー->==__,..-‐ヘ___
     \  ノ ハヽ  |_/oヽ__/     /\
      \  /    /        /  |.  
        y'    /o     O  ,l    |

378 :名無しさん@お腹いっぱい。:03/04/08 03:11
端末でCGIの試験ができると聞いたのですが
どうすればいいのですか?
たしか、
cat file > ruby test.rb
とするようなことを聞いたんですが
fileにどういう風に書けばいいのかわかりません。


379 :あぼーん:03/04/08 04:13
   ,.´ / Vヽヽ
    ! i iノノリ)) 〉
    i l l.´ヮ`ノリ <先生!こんなのがありました!
    l く/_只ヽ    
  | ̄ ̄ ̄ ̄ ̄|
http://saitama.gasuki.com/koufuku/

380 :名無しさん@お腹いっぱい。:03/04/08 05:58
>>378
$ cat req.txt
foo=bar&bar=baz
$ cat req.txt | ruby -rcgi -e 'CGI.new.params.each{|n,v|p [n,v]}'
["foo", ["bar"]]
["bar", ["baz"]]
$

381 :名無しさん@お腹いっぱい。:03/04/09 02:28
ところで、これって何のキャラよ?
ttp://www.yoshidam.net/diary/200304.html#07_t1_1

382 :名無しさん@お腹いっぱい。:03/04/09 02:37
テネレッツァ?

383 :名無しさん@お腹いっぱい。:03/04/09 02:38
これと同じ
http://www.saitama.gasuki.com/hangul/

384 :名無しさん@お腹いっぱい。:03/04/09 03:00
>>382
thx。このへんも一緒かな?
ttp://www.yoshidam.net/diary/200302.html#20_t2_1
ttp://www.yoshidam.net/diary/200303.html#17_t3_1

そういえば、これそのまんまだな。
ttp://www.yoshidam.net/diary/200303.html#11_t2_1

385 :名無しさん@お腹いっぱい。:03/04/09 03:22
ソースからコンパイルすると昼寝が出来ますね。

386 :名無しさん@お腹いっぱい。:03/04/09 13:47
深夜労働乙(W >>383
自動で書いてるとは思えんのだが、よくやるなこんな時間まで。


387 :381,384:03/04/14 14:24
ttp://www.yoshidam.net/diary/200304.html#13_t1_3

あーいや、元ネタを知らなかった&ゲーム名と絵の関連に思いいたらなかった
だけなので…。

うまいと思います。rbcccda使ってまつ。


388 :387:03/04/14 18:55
> rbcccda使ってまつ。
rbcccda用のマスコットデータってことね。たびたび失礼。

389 :名無しさん@お腹いっぱい。:03/04/15 11:53
なんで近頃の-talkは厨な質問ばっかりなんでしょうか?

390 :名無しさん@お腹いっぱい。:03/04/15 11:54
Python にすべきか Ruby にすべきか悩む。

391 :名無しさん@お腹いっぱい。:03/04/15 12:04
>>390
間を取って VB.Net ですね。

392 :山崎渉:03/04/17 11:57
(^^)

393 :名無しさん@お腹いっぱい。:03/04/18 17:46
>>390
もれは、真珠とルビまよってルビにしたんだけど、
最近後悔している。 なんていうか、発想はいいんだけど
思い付き見たいなところが多くて萎えてくる部分が多い。


394 :名無しさん@お腹いっぱい。:03/04/18 18:52
自分が使う言語なんてのは一度決めたら一生それだけってわけじゃないんだから
合わないと思ったら別のを使えばいいだけ。後悔なんてしてる暇があったら
perlでもpythonでも覚えればいい。

395 :■□■週間アイドル盗撮ランキング【4月】■□■:03/04/18 19:38
安倍な●み 盗撮ランキング1位
http://rental.serikura.jp/~shop/nt/ans.jpg
加護○依 盗撮ランキング2位
http://sagisou.sakura.ne.jp/~deai2/cgi/rank.cgi?arifish
松浦○や 盗撮ランキング3位
http://pakopako.misty.ne.jp/enter.cgi?id=arifish
深田●子 盗撮ランキング4位
http://friends.rank.ne.jp/in.cgi?account=arifish
藤本●貴 盗撮ランキング5位
http://www.all-mode.net/jrank/in.php?id=arifish
浜崎あ○み 盗撮ランキング6位
http://it.sakura.ne.jp/~www/www/ranklink.cgi?id=arifish

先週のランキングベスト1はこの人!!!
http://friends.rank.ne.jp/in.cgi?account=arifish

396 :名無しさん@お腹いっぱい。:03/04/18 20:16
いちいち人の事に突っ込みを入れる暇があったら(略

397 :名無しさん@お腹いっぱい。:03/04/18 21:59
>> xmlrpc4r
Ruby > 1.6 なんだから String#match なんか使うなよな・・・
つーか、 XMLRPC::ModRubyServer って動く?

398 :名無しさん@お腹いっぱい。:03/04/19 10:47
rubyはなぜこんなに遅いのかなぁ?やはりオブジェクト指向の副産物ですか?


399 :名無しさん@お腹いっぱい。:03/04/19 13:12
実用性を犠牲にしたからです。

400 :名無しさん@お腹いっぱい。:03/04/19 13:16
>>398
今更そんな煽りに乗る香具師はそうそういないわけだが

401 :名無しさん@お腹いっぱい。:03/04/19 23:47
>>400
煽りではなく単なる事実に基づく乾燥


402 :名無しさん@お腹いっぱい。:03/04/20 01:31
是非 >>398>>401 の書く糞スクリプトを見てみたいわけだが。

403 :山崎渉:03/04/20 05:46
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

404 :名無しさん@お腹いっぱい。:03/04/21 16:43
>>345
[ruby-talk:69781]にもFloat#to_rationalがポストされてる。
345のはIEEE754を前提にしてるのがイヤだな。

いや、むしろIEEE754フォーマットのpack/unpackをサポートしたほうがいいのかな。

405 :名無しさん@お腹いっぱい。:03/04/21 23:25
>>404
ん?サポートって例えばどういうの?

406 :名無しさん@お腹いっぱい。:03/04/22 00:09
サポートっつーか、EeGgではIEEE754を使う。と明示しちゃうとかさ。

407 :名無しさん@お腹いっぱい。:03/04/22 00:43
IEEE754というのはプログラミング環境に関する規格なので、
使う使わないというよりRubyがIEEE754に準拠してるかしてないか
というたぐいのものかと。
またIEEE754はビットマップのレイアウトを指定しないので
EeGgがIEEE754を使うわけでもない。
ともかくなんか適当な文言を考えて明言してほしいという点でまったく同意。

408 :名無しさん@お腹いっぱい。:03/04/26 03:13
配列の各要素に to_i をして配列を返すというのが
やりたいんですが、どうやればいいんでしょうか。

a,b = ["1","2"].each {|i| i.to_i}
print a+b

これでは 3 でなく、文字列として 12 になってしまいます。

例えば lisp でいうと、
(mapcar (lambda (x)
(string-to-int x))
'("1" "2"))
=> (1 2)

こんな感じのことがしたいのです。
初歩的なことですが、ruby を使い始めたばかりで
どうしてもわかりませんでした。
教えて下さい。

409 :名無しさん@お腹いっぱい。:03/04/26 03:18
>>408 map

410 :408:03/04/26 03:42
>>409ありがとうございます。手元のマニュアル(ruby 本)にのってなかったので助かりました。今気づいたんですが、filter というのがruby 本にあって、これを使ってみたら collect を使えといわれました。もう ruby 本は古くなってるのかな?

411 :408:03/04/26 03:43
うっ, navi2ch でカキコできなかったんで
w3m でやったら改行が。すみません。

412 :名無しさん@お腹いっぱい。:03/04/26 13:51
>>410
ruby 本といってもいろいろあるわけだが。

と突っ込みたいところだけど、仕様は変わったりするから、
オンラインドキュメントを参照するようにした方がいいね。

413 :名無しさん@お腹いっぱい。:03/04/26 16:04
みなさんは map と collect って使い分けてますか?

414 :名無しさん@お腹いっぱい。:03/04/26 17:17
>>413
collectしか使わない。漏れにとってはあれはmapではないから。

415 :名無しさん@お腹いっぱい。:03/04/27 03:45
ruby reference manual の info 版、新しいのないかな。

# perl の info も古くなってきてるなあ。
# info はもう古いのだろうか。emacs 使う人なら瞬時に出せて
# 検索もできて結構便利なんだけどなあ。


416 :名無しさん@お腹いっぱい。:03/04/28 21:31
>>415
rd2info ってあったんじゃない?

417 :名無しさん@お腹いっぱい。:03/04/28 21:37
rd2texiのことかな。むかしlistに出てたのはずっと更新されてないと思うよ。

418 :名無しさん@お腹いっぱい。:03/04/29 02:05
>>414
どんなのが写像なの?

419 :名無しさん@お腹いっぱい。:03/04/29 02:30
map とは写像そのものであって、写像後の値のことではない
ということじゃないの?


420 :名無しさん@お腹いっぱい。:03/04/29 02:30
lisper なんじゃないの?

421 :414:03/04/29 02:40
>>418
知らん。

>>419
そゆことです。

>>420
lispは得意じゃないです。


422 :名無しさん@お腹いっぱい。:03/04/29 02:44
>>421
とすると、map よりも collect の方が適切な名前だ、という見解ですか?

423 :名無しさん@お腹いっぱい。:03/04/29 02:50
よく分からん拘りだな。この場合の map って動詞なんじゃないの?
ちなみに haskell だって map だよ。

424 :414:03/04/29 03:02
>>422
いいえ。
漏れの勝手な見解です。誰に押し付ける気もありません。

>>423
ふーん。そうなの。


425 :名無しさん@お腹いっぱい。:03/04/29 16:24
スレ違いかもしれないけれど、lispの束縛変数って言うのがどういうものか
良くわかりません。
誰かrubyしか知らない人にもわかりやすく教えてください。

426 :名無しさん@お腹いっぱい。:03/04/29 19:08
すると lisp の map は適切な名ですか?

ところで mapcar って何の略?

427 :名無しさん@お腹いっぱい。:03/04/29 21:29
map current address register

428 :名無しさん@お腹いっぱい。:03/04/30 00:56
で、414以外は413の質問に誰も答えてないわけだが。


429 :名無しさん@お腹いっぱい。:03/04/30 02:01
頭が悪くてcollectかcorrectか覚えれないので、map使います。


430 :名無しさん@お腹いっぱい。:03/04/30 06:13
>>413 >>428
mapしか使わないよ。
漏れはsmalltalkerじゃないからcollectとinjectは意味がよく分からないが、
injectはaliasがないから仕方がない。

431 :名無しさん@お腹いっぱい。:03/04/30 06:34
collect はどうも意味がしっくりこないので分かりやすい map を使ってる

432 :名無しさん@お腹いっぱい。:03/04/30 07:02
>>425
lispの仕様に束縛変数という用語があるかどうかは知らないが、
次の例を考える x = 1; y = 2; w = lambda{|x,z| x+y+z};
このうち、
x = 1; # 自由
y = 2; # 自由
w = # 自由
lambda{|x, # 束縛
z| # 束縛
x+ # 束縛
y+ # 自由
z # 束縛
};


433 :名無しさん@お腹いっぱい。:03/04/30 07:03
束縛と自由は変数毎ではなくその出現毎に定義される。
lispでは (defun foo (x y) ...) や (lambda (x y) ...) の x と y は
defun や lambda で束縛されている。
注目するブロック内での代入(束縛)が外の影響を受けない変数は
そのブロックで束縛されている。そうでないものはそのブロックで自由。
だから大雑把には局所変数は束縛変数で、大域変数が自由変数だが、
束縛と自由はもともとλ計算や記号論理の用語なので、
そっちから理解しないと分かりにくいと思う。

434 :名無しさん@お腹いっぱい。:03/04/30 14:24
>>433
432の「lambda{|x,」は外部のxと共通なわけだけど、これも束縛されてんの?

435 :名無しさん@お腹いっぱい。:03/04/30 15:11
>>434
束縛を統語的に定義しないと判定はできんのだが、λ式の規則を流用すればイエス。
λ式や論理式における束縛された変数とはぶっちゃけ仮引数と同名の変数であって、
その変数が仮引数として有効なスコープで束縛されている。

もともと自由な出現という概念はλ式や論理式で代入を定義するためのものなので、
lispのsetqやrubyの=のように代入が副作用として許されたり、rubyのように引数の
スコープがネストするかどうかが文脈依存するような言語への流用は無茶ではある。

だから実際どうだかは知らないがlispの仕様に束縛変数なる用語があるとは思えん。
例えば湯浅・萩谷「Common Lisp入門」では束縛変数という用語は使われていない。

436 :名無しさん@お腹いっぱい。:03/04/30 15:14
>>435
てことは>>425はスレ違いってことでFA?

437 :名無しさん@お腹いっぱい。:03/04/30 15:23
>>436
binding()というのもあるから束縛から完全に自由というわけでもない。
[ruby-list:13435] の周辺を参照。

438 :名無しさん@お腹いっぱい。:03/04/30 19:36
schemeには束縛変数という用語はあるみたいね。

439 :名無しさん@お腹いっぱい。:03/04/30 20:08
これのことかな ttp://www.swiss.ai.mit.edu/~jaffer/r5rs_5.html#IDX45
By abuse of terminology, the variable is sometimes said to name the value
or to be bound to the value. This is not quite accurate, but confusion
rarely results from this practice.

440 :名無しさん@お腹いっぱい。:03/04/30 20:59
藻前ら、Rubyの話をしなさい!
ただでさえ板違いなのにその上スレ違いの話を続けるのはどうよ?


441 :名無しさん@お腹いっぱい。:03/04/30 21:02
>>440
じゃあ何かネタを振れ

442 :名無しさん@お腹いっぱい。:03/04/30 22:13
ちょとベンキョウになったがナ〜
この手のネタっていまみたいにヤンワリ流れてるうちはいいんだが
俺様なヤシが現れると途端にフレームになるんだよね。。。

443 :名無しさん@お腹いっぱい。:03/05/01 01:18
おれ lisper だけど、
ruby 使い出した理由は
lisp 的に使える perl という
ような所。


444 :名無しさん@お腹いっぱい。:03/05/01 01:31
>>443
お前、rubyでlisper的に戸惑った点とかありますか?

445 :名無しさん@お腹いっぱい。:03/05/01 01:52
足し算が
+ 1 2 じゃなくて 1 + 2
とかじゃない?


446 :名無しさん@お腹いっぱい。:03/05/01 02:15
2項はともかく (+ 1 2 5) とかできるのは確かに便利だな。
inject で書けるのは分かるがめんどい。

447 :名無しさん@お腹いっぱい。:03/05/01 02:34
>>446
class Symbol; def [](car,*cdr) cdr.inject(car){|i,j| i.send(self, j)} end end
p :+[1, 2, 5] #=> 8
p :-[1, 2, 5] #=> -6

448 :名無しさん@お腹いっぱい。:03/05/01 16:13
>>447
これって組み込みでもええんちゃう?

449 :名無しさん@お腹いっぱい。:03/05/01 18:25
これでも同じ。
class Symbol; def [](*args) args.inject{|i,j| i.send(self, j)} end end


450 :名無しさん@お腹いっぱい。:03/05/01 22:00
:op[*array] で array.empty? の対処として Id を op の単位元とすると
>>447 だと :op[Id, *array] と書くことになる。効率は一つ分悪い字面が短い。
>>449 だと :op[*array] || Id だが Id はなくていいから自由度が高く効率もいい。
ちょっと違うけど、どっちがいいのかは分からん。

451 :名無しさん@お腹いっぱい。:03/05/01 22:11
>>447は空の引数だとエラーになるだろ。
()、つまり空のブロックはnilになることからすると、:op[]がnilになるのは
自然に思えるんだが、>>450の言いたいことがよく分からん。


452 :名無しさん@お腹いっぱい。:03/05/01 22:25
勘違いしてた。スマソ
x = Set[1,2], e = Set[] のとき :+[*x] == 3 で :+[*x] == 0 であって欲しいけど、
単位元0は指定しないと分からんから :+[0,*x] を強制する >>447 も悪くないと思った。
でも >>449 でも同じように書けるのね。

453 :名無しさん@お腹いっぱい。:03/05/01 22:28
- x = Set[1,2], e = Set[] のとき
+ x = Set[] のとき


454 :名無しさん@お腹いっぱい。:03/05/01 22:33
空の引数を許さないようにってこと?
でもそれはSymbol一般には拡張できないと思うんだが。

455 :名無しさん@お腹いっぱい。:03/05/01 22:35
確かに。やはり >>449 の方が優れてるな。

456 :名無しさん@お腹いっぱい。:03/05/01 23:13
階乗を :*[1,*(2..n)] と書けるかと思ったら1.8ではできないのかあ

457 :名無しさん@お腹いっぱい。:03/05/01 23:19
なんか勉強になるなあ。
ところでrubyのlambdaはコストが高いような印象があるんだけど実際のところは
どうなんだろ?
末尾再帰の最適化はやってるのかな?

458 :名無しさん@お腹いっぱい。:03/05/02 00:01
>>456
できるだろ?

459 :名無しさん@お腹いっぱい。:03/05/02 00:02
>>457
> 末尾再帰の最適化はやってるのかな?
ない。
selfのような、現在のブロックを指すキーワードというものはないから、
同じブロックであることは保証できないし。

460 :名無しさん@お腹いっぱい。:03/05/02 00:11
>>458
updateしたらできるようになりました。指摘サンクス

461 :名無しさん@お腹いっぱい。:03/05/02 00:20
いやupdateしたせいではないかも。最近の変化を理解してない。
def m(*a) a end; p m(*(1..3)) が [1...3] を表示するように変更したのはなぜ?
しばらく前は [1, 2, 3] だったと思うのだけど。どこで議論された結果なんだろ。

462 :名無しさん@お腹いっぱい。:03/05/02 00:28
暗黙のObject#to_aを呼ばないようにした副作用かな。
しかし呼び出しの時点で*がついている以上、展開されるのが正しいような気がする。

463 :名無しさん@お腹いっぱい。:03/05/02 00:55
漏れもそんな気がする。つうか正直驚いたよ。

464 :名無しさん@お腹いっぱい。:03/05/02 01:20
言語仕様の細かいところで表現の限りを尽くそうとする人たち、スゲー
あたしゃRubyではJavaっぽい優等生な書き方で、
再利用しないようなコードしか書けません(書いたことがありません)。

465 :名無しさん@お腹いっぱい。:03/05/02 02:52
>>464
> あたしゃRubyではJavaっぽい優等生な書き方で、
> 再利用しないようなコードしか書けません(書いたことがありません)。

なんか逆な気がw

466 :名無しさん@お腹いっぱい。:03/05/02 17:53
class Symbol
 def [](*args)
  case self
  when :<, :<=, :>, :>=, :==
   !! args.inject{|i,j| i.send(self, j) ? j : break}
  else
   args.inject{|i,j| i.send(self, j)}
  end
 end
end

p :<[1, 2, 3] #=> true
p :<[1, 2, 2] #=> false
p :<=[1, 2, 2] #=> true
p :==[1, 2, 2] #=> false
p :==[2, 2, 2] #=> true


467 :名無しさん@お腹いっぱい。:03/05/02 19:17
eql? と equal? も入れていいんじゃないかな
!= に使えないのは残念

468 :名無しさん@お腹いっぱい。:03/05/04 20:12
mathn あたりに欲しいもの。
def sum(x,i=0,&b)
x=x.to_a ; b ? x.inject(i){|s,t|s+yield(t)} : x.inject(i){|s,t|s+t}
end
def prod(x,i=1,&b)
x=x.to_a ; b ? x.inject(i){|s,t|s*yield(t)} : x.inject(i){|s,t|s*t}
end
def fact(n)
n=n.to_i ; n<0 ? 0 : prod(2..n)
end
def P(n,k)
n,k=n.to_i,k.to_i ; k=n-k if 2*k>n ; k<0||n<0 ? 0 : prod(n-k+1..n)
end
def C(n,k)
n,k=n.to_i,k.to_i ; k=n-k if 2*k>n ; k<0||n<0 ? 0 : prod(n-k+1..n)/prod(1..k)
end

469 :名無しさん@お腹いっぱい。:03/05/06 23:06
1.8になってどこが変わったとかいうドキュメントはいずこに?

470 :名無しさん@お腹いっぱい。:03/05/06 23:48
あ〜あせっかくほどよく潜行してたのにのにのにぃ。。

471 :名無しさん@お腹いっぱい。:03/05/07 00:49
>>469
http://www.ruby-lang.org/ja/
[リファレンスマニュアル]-[ruby 1.7 feature] [ruby 1.8 feature]

472 :名無しさん@お腹いっぱい。:03/05/07 06:45
Unixと関係ない話題は他でどうぞ。

473 :名無しさん@お腹いっぱい。:03/05/07 15:24
pdumpfs使っている人いない?
pdumpfs exclusion patchを当てたんだけど、指定したディレクトリを除外してくれるのはいいのだが、動作時間変わんないんだよね。
除外はするけど、中見てるのかな?


474 :名無しさん@お腹いっぱい。:03/05/07 15:42
Rubyと関係ない話題は他でどうぞ。

475 :名無しさん@お腹いっぱい。:03/05/07 16:29
>>474 rubyだろ!

476 :名無しさん@お腹いっぱい。:03/05/07 18:26
制御端末切り離して STDERR を close した後に、
例外で終了するときに STDERR へエラーメッセージを出さないようにしたいのですが、
なにか良い方法はありますか?
いまは STDERR を close せずに /dev/null へつないでしのいでいます。

477 :名無しさん@お腹いっぱい。:03/05/07 20:53
>>476
トップレベルで例外を全部拾う。

begin

#本体

rescue Exception
end

478 :名無しさん@お腹いっぱい。:03/05/07 21:06
>>477
むぎゅ〜、それしか無いですかね?

デフォルトのエラー出力ポートの、
出力先や出力の有効無効を大域的に変更できれば嬉しいように思うのですが・・・

479 :名無しさん@お腹いっぱい。:03/05/07 22:08
>>478
$stderr を reopen とか close した場合ってなんか弊害あるの?

480 :名無しさん@お腹いっぱい。:03/05/07 22:13
>>479 $strerr の reopen は将来的に挙動が変わる可能性があるので嫌、とか?

481 :名無しさん@お腹いっぱい。:03/05/07 22:36
>>480 なるほど。
それはそれとして Kernel::raise は $stderr.write を経由してないみたいだから、
>>478 はバグレポートか ruby-dev に直訴した方がいいかもね。

482 :名無しさん@お腹いっぱい。:03/05/07 22:56
>>480
reopenは変わらないと思うけど。変わるかも知れないのは$stderrへの代入?

>>481
それはちょっと前にtalkでも出てたけどrescueとかat_exitでケリがついてし
まったみたいだが、整理して改めて提案し直すのも有益かも知れない。


483 :名無しさん@お腹いっぱい。:03/05/13 00:38
また再燃してるな…。

しかし、なんでこう組み込みにしたがる奴が多いのかね。

484 :名無しさん@お腹いっぱい。:03/05/13 11:43
>>478
$deferrってのが追加されるモヨリ

485 :名無しさん@お腹いっぱい。:03/05/14 01:47
作者の人のにっきだの。
ttp://www.rubyist.net/~matz/

486 :478:03/05/14 03:30
>>484-485
これ ($deferr & warn) 、私の欲していたものにかなり近いようです。

>>483
私のことでしょうか?

487 :483:03/05/14 12:42
>>486
いや、ruby-talk。

488 :名無しさん@お腹いっぱい。:03/05/15 22:15
1.8.0-previewを使っていたけど、意味不明な振る舞いに悩まされて
もう音を上げました。1.6.8に戻します。戻します。戻します……

489 :名無しさん@お腹いっぱい。:03/05/16 00:25
>>488 の振る舞いが意味不明です


490 :名無しさん@お腹いっぱい。:03/05/16 00:47
Hikiのddd問題が意味不明です

491 :名無しさん@お腹いっぱい。:03/05/16 03:40
>>491
環境揃えたけどウチじゃ再現しねー

492 :名無しさん@お腹いっぱい。:03/05/16 04:02
>>491
それ無限ループ。

493 :名無しさん@お腹いっぱい。:03/05/16 10:52
>>491の振る舞いも意味不明です

494 :名無しさん@お腹いっぱい。:03/05/16 11:04
>>491:1: stack level too deep (SystemStackError)

再現しますた。

495 :名無しさん@お腹いっぱい。:03/05/16 11:06
>>495
僕ってほんとバカ。exit; # こやりゃroopしないだろ



496 :名無しさん@お腹いっぱい。:03/05/16 11:12
「roop」

497 :bloom:03/05/16 11:14
http://homepage.mac.com/ayaya16/

498 :近頃広告がウザいのであんまりあげないで欲しかったりする:03/05/16 11:21
>>495:1:in `僕ってほんとバカ': stack level too deep (SystemStackError)
    from >>495:1:in `僕ってほんとバカ'
    from >>495:1:in `僕ってほんとバカ'
    from >>495:1:in `僕ってほんとバカ'
    from >>495:1:in `僕ってほんとバカ'
    from >>495:1:in `僕ってほんとバカ'
    from >>495:1:in `僕ってほんとバカ'
    from >>495:1:in `僕ってほんとバカ'
    from >>495:1:in `僕ってほんとバカ'
     ... 3029 levels...
    from >>495:1:in `僕ってほんとバカ'
    from >>495:1:in `僕ってほんとバカ'
    from >>495:1:in `僕ってほんとバカ'
    from >>495:1


499 :名無しさん@お腹いっぱい。:03/05/16 11:26
>>498
まじか?
それは、ともかく
「近頃広告がウザいのであんまりあげないで欲しかったりする」よ
いい2chブラウザ佐賀瀬谷


500 :名無しさん@お腹いっぱい。:03/05/16 12:46
2chブラウザが何であろうと広告貼る方には関係ないだろ。
表示しないようにしても、どんどん新手が来るんでめんどくさい。

501 :名無しさん@お腹いっぱい。:03/05/16 14:24
ageの話じゃなかったのね。どでもいいです。rubyの話しよ



502 :名無しさん@お腹いっぱい。:03/05/16 14:49
↓ こんな Ruby は嫌だ。

503 :名無しさん@お腹いっぱい。:03/05/16 15:16
Windows XP でしか動作しない。

504 :名無しさん@お腹いっぱい。:03/05/16 16:22
feature freezeされている。

505 :名無しさん@xyzzy:03/05/17 07:51
実は alias ruby='perl -mRuby'だったりする

506 :名無しさん@Meadow:03/05/17 14:32
matzとLarryが実はできてる

507 :名無しさん@LEmacs:03/05/17 18:42
perlスクリプトを食わされると、黙ってperlをexecするruby

イイカモ

508 :名無しさん@お腹いっぱい。:03/05/17 19:19
>>507
昔は#!/usr/bin/perlとか書いてあるとperl呼ぶようになってたけど、今はなくなったんだよな。

509 :名無しさん@お腹いっぱい。:03/05/17 19:53
>>508
そうなん? ruby-1.6.8 では Perl と同じように #! のコマンドを実行してるみたいだけど。

510 :名無しさん@お腹いっぱい。:03/05/17 19:57
なくなったのは-*-の特別扱いだった。ごめん。

511 :名無しさん@お腹いっぱい。:03/05/19 14:24
pp が組み込みになるといいな・・・

512 :名無しさん:03/05/21 04:22
Rubyに限った話ではないけど、
自分のIPアドレス(127.0.0.1ではなくて)を得るにはどうしたらいいですか?

513 :名無しさん@お腹いっぱい。:03/05/21 05:30
>>512
「自分の IP アドレス (ってそもそも何だ?って話になりそうだが)」を得る
generic な方法は無いと思われ。
つーか、スレ違いっていうか、くだ質あたりで聞いた方がええんちゃう?

514 :名無しさん@お腹いっぱい。:03/05/21 05:33
>>512
IPSocket::getaddress(Socket::gethostname) とか?
インターフェースが複数あったり、IPv6アドレスや、エイリアスも考慮するとプラットフォーム依存。
if_nameindex(3) や ioctl の SIOCGIFADDR あたりを拡張ライブラリにしてくださいな。

515 :名無しさん@お腹いっぱい。:03/05/21 09:05
String の末尾数行を削除するメソッドってあります?
こんな風に書いて使ってるんですけどOKなんかな?

class String
 def deltail(num)
  a = []
  self.each { |line| a << line }
  num.times { a.pop }
  a.join
 end
end


516 :名無しさん@お腹いっぱい。:03/05/21 09:31
>>515 ないと思うがそれを書くならこうかな
class String
  def deltail(n)
    to_a[0..-(n+1)].join
  end
end

517 :名無しさん@お腹いっぱい。:03/05/21 10:10
class String
 def deltail(num)
  sub(/\A(.*?)(?:[^\n]*\n?){#{num}}\Z/m, '\1')
 end
end


518 :名無しさん@お腹いっぱい。:03/05/21 10:12
\1はいらんな。

sub(/(?:[^\n]*\n?){#{num}}\Z/m, '')


519 :山崎渉:03/05/22 01:48
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

520 :515:03/05/22 10:46
>>516
すっきりしててエレガントですね。そういう Array 化 (to_a)
を知りませんでした。参考になります。

ちなみに、! なメソッドとして定義したい場合はどのように
書けば良いのでしょう?


521 :名無しさん@お腹いっぱい。:03/05/22 11:16
>>520
この場合は replace するしかない。
class String
  def deltail(n) to_a[0..-(n+1)].join end
  def deltail!(n) replace(deltail(n)) end
end

>>517-518のだと sub を sub! にすればすむから、! の方を基本にするのが常套。
配列を経由しないから>>516よりも効率がよい。多分。
class String
  def deltail(n) o = dup ; o.deltail(n)! ; o end
  def deltail!(n) sub!(/(?:[^\n]*\n?){#{num}}\Z/m, '') end
end

522 :名無しさん@お腹いっぱい。:03/05/22 11:35
ついでにいうと>>516だと "foo\nbar".deltail(3) で例外が上がる。
その文字列の行数よりも大きな n を指定したときにどう振舞うかは
あなたが決めることだが、>>516のままでは行儀が悪いので、
例外を上げるにしても以下のように自分で上げ直すべきだろう。

  def deltail(n)
    to_a[0..-(n+1)].join rescue raise(ArgumentError, "too large arg `#{n}'")
  end

523 :名無しさん@お腹いっぱい。:03/05/22 11:49
>>522
> その文字列の行数よりも大きな n を指定したときにどう振舞うかは
うっかりしてた。あと>>521のだとエラーになるので修正版。

class String
  def deltail(n) o = dup; o.deltail!(n); o end
  def deltail!(n) sub!(/(?:[^\n]*\n?){0,#{n}}\Z/m, '') end
end


524 :名無しさん@お腹いっぱい。:03/05/22 11:54
別解。

def deltail(n) self[/\A.*?(?=(?:[^\n]*\n?){0,#{n}}\Z)/m] end



525 :名無しさん@お腹いっぱい。:03/05/22 16:47
ipaddr.rb (IPAddr) って名前が悪いと思う。

標準添付されるライブラリならば、変に略した名前なんかにせずに、
ipaddress.rb (IPAddress) とする方が良いと思うのですが、
みなさんはいかが思われますか?

526 :名無しさん@お腹いっぱい。:03/05/22 17:11
addressをaddrと略すのは、かなり一般的だと思うけどなあ。

527 :名無しさん@お腹いっぱい。:03/05/22 23:42
一貫性が問題かもね。略してたり略してなかったりするのは変かも。

528 :名無しさん@お腹いっぱい。:03/05/23 01:09
Ruby+SOAPについて解説しているサイトないですか?

529 :名無しさん@お腹いっぱい。:03/05/23 01:51
このへんから辿ればどうかな?
ttp://rrr.jin.gr.jp/rwiki?cmd=view;name=SOAP4R%A4%C7%CD%B7%A4%DC%A4%A6

530 :名無しさん@お腹いっぱい。:03/05/23 01:55
>略してたり略してなかったり
tDiaryのプラグインでrefererとreferrerが
混ざってるっていう話もあったね。

531 :名無しさん@お腹いっぱい。:03/05/23 03:08
RFC2616 でも (the "referrer", although the header field is misspelled.)
って、わざわざいってるわけだから referer にするのが吉かと

532 :名無しさん@お腹いっぱい。:03/05/23 11:56
>>527
そんなにいろいろ混じってたっけ?

$ refe addr
IPSocket#addr
Net::HTTP#address
Net::POP3#address
Net::SMTP#address
Resolv::DNS::Resource::IN::AAAA#address
Resolv::DNS::Resource::IN::WKS#address
UNIXSocket#addr

うーん、微妙だな…。

533 :515:03/05/23 15:15
いろんなコメントありがとうございます。非常に勉強になります。

>>523 についてじっくり理解しようとしてるんですが、(?: ) の
意味が理解できません。リファレンスによると、公報参照を伴わ
ないグループ化、ということなんですが、公報参照を伴わないって?

グループ化って、マッチ後 $1 とかで参照できるアレですよね?

スレ違い、すみません。ム板逝った方がいいでしょうか?


534 :名無しさん@お腹いっぱい。:03/05/23 15:46
>>533
> グループ化って、マッチ後 $1 とかで参照できるアレですよね?
それが後方参照。(?: )だと$1とか\1とかの対象にならなくなる。

でも>>523の場合はどっちでも一緒。


535 :515:03/05/23 16:10
>>534
すると >>523 の正規表現部分は /([^\n]*\n?){0,#{n}\Z}/m
でも同じで、() でグループ化しているのは、() に含まれる
部分にマッチした部分を {0,#{n}} の対象としたい、って
ことですよね。

[^\n]*\n? の部分を紐解いているのですが、もうちょっと教
えてください。

最初の [^\n] は行頭または改行のどちらかにマッチしますよ
ね。 次の * はその 0 回以上の繰返し。で、その後に改行。
最後の ? がその前の改行の 0 回か 1 回の繰返し。

この表現が 0 回以上 n 回まで繰り返された後に文字列の最後
が来る部分を '' に置き換える、すなわち、削除する、という
処理なのは分かるんですが、ということは [^\n]*\n? という
表現は行にマッチする表現なんですよね。

なぜ最後に ? が必要なのかがいまいちわかりません。


536 :名無しさん@お腹いっぱい。:03/05/23 16:28
>>535
> >>534
> すると >>523 の正規表現部分は /([^\n]*\n?){0,#{n}\Z}/m
> でも同じで、() でグループ化しているのは、() に含まれる
> 部分にマッチした部分を {0,#{n}} の対象としたい、って
> ことですよね。
そう。

> 最初の [^\n] は行頭または改行のどちらかにマッチしますよ
改行以外。^は文字クラスの中と外では意味が違う。

> 処理なのは分かるんですが、ということは [^\n]*\n? という
> 表現は行にマッチする表現なんですよね。
それはあってる。

> なぜ最後に ? が必要なのかがいまいちわかりません。
改行で終ってない場合のため。
?がある場合とない場合で、"abc\ndef".deltail(1)を試してみれば分かる。


537 :名無しさん@お腹いっぱい。:03/05/23 16:44
呼び出されたメソッド名を得る方法ってありますかね?
こんなイメージで。

def foo
get_current_method_name
end

p foo # => "foo"

538 :名無しさん@お腹いっぱい。:03/05/23 17:02
ruby-talkとかで月一くらい出る質問だな。

def get_current_method_name
/`(.*)'/ =~ caller(1)[0] and $1
end


539 :名無しさん@お腹いっぱい。:03/05/23 17:26
>>538
うげ、FAQ ですたか。どもです。

540 :515:03/05/23 17:33
>>536
> 改行以外。^は文字クラスの中と外では意味が違う。
おぉ!うっかりしてました。これで頭のなかで理解できました。
ありがとうございます。

意味は理解出来たけど、自分でこれを考え出すのは無理だなぁ...。
やっぱ、他人のソースから学ぶんでしょうか?


541 :名無しさん@お腹いっぱい。:03/05/23 17:52
>>540
どんな凡人でも経験積めば読み書きできるようになるっしょ。ガンガレ

542 :名無しさん@お腹いっぱい。:03/05/24 13:56
l=open('hoge','r').readline
ってなopenをした時ファイルは読み込み後closeされるのでしょうか?

543 :名無しさん@お腹いっぱい。:03/05/24 16:15
>>542
いいえ。
いちいち明示的に close する(書く)の忘れやすかったりめんどくさかったら、
ブロックにするのがいいかも。

File::open('hoge', 'r') { |file|
file.readline
# その他の処理
}

漏れはいつもこんなんしとる。
data = File::open("data.txt") { |f| f.read }

544 :名無しさん@お腹いっぱい。:03/05/24 16:39
外人さんの作ったライブラリなんかだと、クラスの HTML のドキュメントが、
Smalltalk のブラウザみたいフレームで複数ペインになってるのがありますよね。
あれって一体どうやって生成しとるんでしょうか?

545 :名無しさん@お腹いっぱい。:03/05/24 17:13
>>543
ありがとうございました

546 :名無しさん@お腹いっぱい。:03/05/24 17:14
>>544
ttp://rdoc.sf.net

547 :名無しさん@お腹いっぱい。:03/05/24 17:15
>>542
ゴミになったらcloseされる

548 :名無しさん@お腹いっぱい。:03/05/26 21:29
>>547
http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=trap%3A%3AIO

549 :名無しさん@お腹いっぱい。:03/05/28 10:11
文字列の先頭 n byte だけを切り出したいんですが、

 string[/.{0,#{n}}/]

だと、2 byte 文字も 1 文字としてカウントされちゃいます。

string[0,#{n}]

はいい感じなんですが、

 "ほげほげ"[0,3] #=> "ほあ"

になっちゃうんです。

split して、1 つずつ size をチェックして判断していくし
かないでしょうか?


550 :名無しさん@お腹いっぱい。:03/05/28 10:48
>>549
#!ruby -Ke
p "ほげほげ"[/.{0,3}/n] # => "ほ\244"
p "ほげほげ"[0,3] # => "ほ\244"


551 :名無しさん@お腹いっぱい。:03/05/28 15:37
>548
ファイル記述子の値域がstdio依存なのとRubyの仕様は別の話だと思われ
もし深刻ならばRubyの実装でカヴァーすべきかと

552 :山崎渉:03/05/28 16:49
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

553 :名無しさん@お腹いっぱい。:03/05/28 23:37
>>549
mobileimap の String#cut にあるように
"あいうえお"[0,5].scan(/.+/m) #=> ["あい"]
という話かと思ったけど、違ってそう。

554 :549:03/05/29 11:24
>>553
あ、それです。やりたいことは。なるほど。
でもなんで、.+ で scan すると最後の中途半端
な 1 byte が削除されるんでしょう?


555 :名無しさん@お腹いっぱい。:03/05/29 11:24
>>551
どんなトラブルなんだったっけ。

556 :名無しさん@お腹いっぱい。:03/05/29 11:27
>>554
549といってることが完全に逆じゃん。

>>553は$KCODEを設定してる場合。
不完全なマルチバイト文字は何にもマッチしないから。

とりあえずjcode.rbでも使っとけ。


557 :名無しさん@お腹いっぱい。:03/05/29 16:09
『"』と『"』に挟まれていない『,』という正規表現は
どう書けばいいでしょう?

String#split を使って『,』で区切った配列を作りたい
というのが要望なんですけど、なかなかうまくいかなく
て…。

あらかじめ『"』と『"』に囲まれた『,』は別の文字に
置き換えておいて、後で『,』に戻した方がラクでしょ
うか?

それだと

  buf.gsub(/(".*?),(.*?")/){"#{$1}@@#{$2}"}.split(",")

という感じで分割できるんですけど、なんか汚いなぁ、と。


558 :名無しさん@お腹いっぱい。:03/05/29 16:59
CVSを分割したいということなら、
http://raa.ruby-lang.org/list.rhtml?name=csv

CSVの仕様自体がきれいじゃないから、そんなに簡単にはいかない。

559 :名無しさん@お腹いっぱい。:03/05/30 11:58
>>555
sunos4が手元にないから知らないけどlibc内でfdが予期せず再利用されるのでは

560 :名無しさん@お腹いっぱい。:03/05/30 13:39
『Ruby magic Ruby で極める正規表現』ってどう?
買おうかと思って本屋で立ち読みしたんだけど、
そんなに深い内容に思えなくって…。


561 :名無しさん@お腹いっぱい。:03/05/30 15:51
>>559
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/19201

562 :名無しさん@お腹いっぱい。:03/05/30 15:59
とどのつまり、 GC にまかっぱなしにしない、
というのが最善解ということでよろしいでしょうか?

563 :名無しさん@お腹いっぱい。:03/05/30 18:06
そもそも file descriptor のようなものは GC にまかせるべきではありません。

564 :名無しさん@お腹いっぱい。:03/05/30 19:22
ならばそもそもGCのときにcloseするべきではないと思われ

565 :名無しさん@お腹いっぱい。:03/05/30 20:30
まあそういった仕様でも良いと思いますよ

566 :名無しさん@お腹いっぱい。:03/05/31 00:30
折角ユーザから隠蔽してる「file discriptor」のようなものの管理は
ユーザにまかせるべきではありません。

567 :名無しさん@お腹いっぱい。:03/05/31 01:03
しかしfdを触る方法も提供してるから微妙かもね

568 :名無しさん@お腹いっぱい。:03/05/31 01:30
>>567
正に matz 氏の言うところの、内臓が見えちゃってる状態だな。

569 :名無しさん@お腹いっぱい。:03/05/31 01:32
腹の皮がないと、人は死んじゃうの?

570 :名無しさん@お腹いっぱい。:03/05/31 13:21
ruby -e 'fd = IO.sysopen("foo") ; GC.start ; IO.new(fd).close'
ruby -e 'id = open("foo").id ; GC.start ; ObjectSpace._id2ref(id)'
で区別されてるんだから>>561みたいなのもrubyで管理出来るんじゃないの?
コンパイル時にfdの型を調べることさえ出来れば。
>>561を理由にユーザがcloseしないといけないというのは不親切。

571 :名無しさん@お腹いっぱい。:03/05/31 15:33
>>569
> 腹の皮がないと、人は死んじゃうの?

体液が流れ出て、脱水症状で死ぬかも

572 :名無しさん@お腹いっぱい。:03/05/31 17:56
ティンコの皮が(


573 :名無しさん@お腹いっぱい。:03/05/31 18:08
松本さんがどこかでインクリメントの
foo++
というスタイルはオブジェクト指向になじまない、ということをおっしゃっていたと思うのですが、
その理由はなぜですか?

574 :名無しさん@お腹いっぱい。:03/05/31 18:20
何を足すの?

575 :名無しさん@お腹いっぱい。:03/05/31 19:24
>>573
0++ の結果がどうなるかを考えてみよ

576 :名無しさん@お腹いっぱい。:03/05/31 19:50
obj.succ があるんだから obj++ があっても良さそうな気がするが。

577 :名無しさん@お腹いっぱい。:03/05/31 20:43
obj++ があるとすれば obj.succ! だが 0.succ! ってなんじゃろうという話かと。

578 :名無しさん@お腹いっぱい。:03/05/31 21:03
それをいうなら 0+=1 だって出来ないのに += という構文はあるわけだが

579 :名無しさん@お腹いっぱい。:03/05/31 21:16
>>578
変数とオブジェクトは違うんだが。

580 :名無しさん@お腹いっぱい。:03/05/31 21:21
>>577
0.succ! は 1 になるのは自然だと漏れは思うのだが、それは変?

581 :名無しさん@お腹いっぱい。:03/05/31 21:41
0.succ == 1は当然だが、succ!だと0自体が1に変わるってことになるだろう。


582 :名無しさん@お腹いっぱい。:03/05/31 22:26
>>579
++ をメソッドに割り当てる必要があるかということなんだが。
a += b が a = a + b という構文に割り当てられているのだから
a++ を a = a.succ などの構文に割り当てるという規則があっても
不思議ではない。

583 :名無しさん@お腹いっぱい。:03/05/31 22:29
イラネ。

584 :名無しさん@お腹いっぱい。:03/05/31 22:38
a++ が a = a.succだと、
オブジェクトaに、++というメッセージを送ると、
新たに生まれたaによって置き換えられる
っていう意味?


585 :名無しさん@お腹いっぱい。:03/05/31 23:12
>>581
それのどこが変なの?

# Ruby の実装上 Integer#succ! がありえないというのはひとまず置いといて、

586 :名無しさん@お腹いっぱい。:03/05/31 23:40
>>585
id = "a".id ; ObjectSpace._id2ref(id).succ! ; p ObjectSpace._id2ref(id) #=> "b"

では、もし Integer#succ! があった場合、以下はどうなるべきと思うのか?

id = 0.id ; ObjectSpace._id2ref(id).succ! ; p ObjectSpace._id2ref(id)

587 :名無しさん@お腹いっぱい。:03/05/31 23:46
>>584
少なくとも += はそうなっている。
ruby -e 'a = "a" ; p a.id ; a += "b" ; p a.id'

588 :名無しさん@お腹いっぱい。:03/05/31 23:52
>>586
#=> 1

589 :名無しさん@お腹いっぱい。:03/06/01 00:06
mutable integer は論外だろう。
++ がない理由としてしばしばあげられるのは、
++ がオブジェクトでなく変数に対する操作を表す構文であるいうことだが、
それは、+= のように変数に対する操作を表す構文がすでにあることを擁護しない。
++ を採用しないのは単に好みの問題であって、
オブジェクト指向と相性が悪いということではないと思われ。

590 :584:03/06/01 00:10
>>587
それは知っている。
というか、知ったときに、騙されたと感じた。


591 :名無しさん@お腹いっぱい。:03/06/01 00:21
>>590
しかし += が新たなオブジェクトを持ってくることがなければ
integer を mutable にする必要があるのでは?

592 :名無しさん@お腹いっぱい。:03/06/01 00:25
mutable integer ってなんじゃらほい?

593 :名無しさん@お腹いっぱい。:03/06/01 00:30
mutable な integer のことでわ?
オブジェクトは mutable と immutable に分類される。

594 :名無しさん@お腹いっぱい。:03/06/01 00:43
>>593
ぐぐってみて、mutable と immutable はなんとなくわかりますた。

で、>>589 の「mutable integer は論外」っていうのが良くわかんねす。
「Ruby では mutable integer はありえない」ってことなのか、
「そもそも mutable integer なんてありえねー」ってことなのか?

595 :名無しさん@お腹いっぱい。:03/06/01 00:49
>>594
> 「そもそも mutable integer なんてありえねー」ってことなのか?

こっちかと。

596 :590:03/06/01 02:16
>>591
その通り。
で、integer は mutable じゃないので、+= で新しいオブジェクトが出来る。問題なし。
でも、587の例は、stringでしょ。
+= は、concat!だと思っていたけど、a = a + "b"のsyntax sugarだと知って、騙された気分。

+=が、integerとstringで同じ動作をすべきという考えもあるけど、
私の心の中のstringに対する+=は、concat!だったのよ。


597 :名無しさん@お腹いっぱい。:03/06/01 02:25
>>596
つまり、「仕様が俺の思い込みと違う。騙しやがったな。」という話しでつか?

598 :名無しさん@お腹いっぱい。:03/06/01 02:34
>>596
むしろ += を再定義出来ないことが不自由に感じることはある。
コンテナでは += を破壊的にしたいことはあるから。
だが += を再定義出来ないことが前提なら解釈を一律にしておくのは妥当な仕様だろう。

599 :名無しさん@お腹いっぱい。:03/06/01 02:43
>>597
サクーシャは驚き最小という言葉に甘んじているからそういう話もありと思われ

600 :590:03/06/01 02:44
>>597
いえーす


601 :名無しさん@お腹いっぱい。:03/06/01 12:05
>>595
あ、そうそう。そっち。

602 :名無しさん@お腹いっぱい。:03/06/01 14:29
>>601
それはなんでなんでしょう?

603 :名無しさん@お腹いっぱい。:03/06/01 15:09
整数はあくまで整数であって整数のコンテナではないから。

604 :名無しさん@お腹いっぱい。:03/06/01 15:38
逆に聞くが、
もし Integer が整数のコンテナだったとしたら、その中身は一体何じゃらほい。

605 :名無しさん@お腹いっぱい。:03/06/01 15:55
>>604
ん〜、わかんないけど、数値みたいなもんなんじゃないの?
String が mutable なんだったら、
別に Integer が mutable だったとしてもそんなに変とは思わないんだけど・・・

606 :名無しさん@お腹いっぱい。:03/06/01 16:13
>>605
むー、正直そんなことをいう人には初めて会った。
円周率に PI という名前をつけて、更に a = PI によって a に代入していたとする。
もし数が mutable なら a.replace(3) などとすると、その世界では PI == 3 に
なっちゃうわけだが、そういう可能性があっても面倒ではないと考えるのね?

607 :605じゃないよ:03/06/01 16:26
なんかこの議論、つい最近どっかで見たことがあるだけど、どこだっけ……。

>>606
むしろ、それがいいところなんじゃないのかな?
将来、

   【衝撃】πの真の値は 3 だった!!【激震】

なんてことが起きても大丈夫。(w
円周率はともかく、物理定数の正確な値が求まったとか……。よー分からんけど。

当然前提として、

a = 3; b = 3
a == b #=> true
a.equal?(b) #=> false

にならなアカンやろけど。

608 :名無しさん@お腹いっぱい。:03/06/01 16:28
bigdecimal は以前 mutable だったというウワサが

609 :名無しさん@お腹いっぱい。:03/06/01 16:28
>>607
> なんかこの議論、つい最近どっかで見たことがあるだけど、どこだっけ……。
ほんとに最近か? 昔のFORTRANがそんなだと思ったが。

610 :名無しさん@お腹いっぱい。:03/06/01 16:33
>>606
ちょっとまって、それは詭弁ではないですか?

> 日本国に JP という名前をつけて、更に a = JP によって a に代入していたとする。
> もし文字列が mutable なら a.replace("韓国") などとすると、
> その世界では JP == "韓国" になっちゃうわけだが、
> そういう可能性があっても面倒ではないと考えるのね?

String なら実際にこういうことが起こっているわけですが、
Integer だとこうではいけないという主張の、
本質的な理由が知りたいわけです。

611 :名無しさん@お腹いっぱい。:03/06/01 16:37
>>607
> 円周率はともかく、物理定数の正確な値が求まったとか……。よー分からんけど。

それはコードを書き換える必要があるので、実行中に値が変わることとは別の話。

> a.equal?(b) #=> false

mutable/immutable と immediate value か否かも別の話。
immediate value にするかどうかは実装の都合に過ぎないよ。

p 3.0.equal?(3.0)
p 3.equal?(3)
p ((10**10).equal?(10**10))

612 :名無しさん@お腹いっぱい。:03/06/01 16:39
>>610
待て、国を文字列でreplaceするのは反則だろう。

613 :名無しさん@お腹いっぱい。:03/06/01 16:48
3.replace(4)としたら、1+2が4になって欲しいわけか。

614 :名無しさん@お腹いっぱい。:03/06/01 16:52
>>613
そんなことは誰もいってないと思うけど?

615 :名無しさん@お腹いっぱい。:03/06/01 16:55
Integerをmutableにするというのは、意味的にはそういうことだ。

616 :名無しさん@お腹いっぱい。:03/06/01 16:57
>>613
いや、Integer が「整数のコンテナ」になって欲しい、ので、1+2 はやっぱり 3 です。

というか、>>611 を読んで、自分が相当変なこと言ってる気がしてきました。
「immediate value」って初めて聞く言葉なんですが、
「Ruby 用語集」の「即値」のところの話しですよね。
うーん、よう分からんようになってきた。頭冷やして出直してきます・・・

617 :名無しさん@お腹いっぱい。:03/06/01 16:59
>>611
> >>607
> > 円周率はともかく、物理定数の正確な値が求まったとか……。よー分からんけど。
>
> それはコードを書き換える必要があるので、実行中に値が変わることとは別の話。

なぜコードを書き換える必要があると?
# 本題でないのでスルーしてね♥

> > a.equal?(b) #=> false
>
> mutable/immutable と immediate value か否かも別の話。
> immediate value にするかどうかは実装の都合に過ぎないよ。

書き方が悪かった。immediate value かどうかを問題にしたつもりじゃなかった。

a=3; b=3;
a.replace(4)
b #=> 3

にならないと困るよね、ってこと。


618 :名無しさん@お腹いっぱい。:03/06/01 17:18
>>604

ビットのコンテナ

619 :名無しさん@お腹いっぱい。:03/06/01 18:37
整数というのは代数と順序で定義された対象だから
それをどれだけ反映するかを前提にしてるんじゃないかな。
整数変数ではなく整数をプログラミング言語で表現するなら
mutable というのは全く考えられない。

しかし文字列もそうなんだけど、Cプログラマのmatzには
文字列の数学的性質に馴染みがなかったから string を
mutable にしたんだろう。

それと、「a == b ならば a.equal?(b)」という一意性と、
即値は一応別の概念であって、即値を採用したのは効率の
ために過ぎず、Fixnumなどの一意性は即値の副産物として
たまたま得られたものだ。

620 :名無しさん@お腹いっぱい。:03/06/04 01:59
グパった


621 :名無しさん@お腹いっぱい。:03/06/05 21:17
1.8はしばらくおあずけですかな。

622 :名無しさん@お腹いっぱい。:03/06/05 22:50
なんかあったとデスカ?
アガりついでに短信キボーヌ

623 :名無しさん@お腹いっぱい。:03/06/06 00:31
割り込みかかったみたいなり
MatzたんのWeb日記見られたし(↓)
http://www.rubyist.net/~matz/

潜航〜、潜航〜

624 :名無しさん@お腹いっぱい。:03/06/06 02:35
俺定義オープンソース追放キャンペーン中
しばらくmatzしかない。

625 :名無しさん@お腹いっぱい。:03/06/06 03:57
オープンソースじゃなくてオウプンソースと表記しましょうか。

626 :名無しさん@お腹いっぱい。:03/06/06 12:37
Oopn' Source

627 :名無しさん@お腹いっぱい。:03/06/06 12:39
オープソンース

628 :名無しさん@お腹いっぱい。:03/06/06 15:03
オウプンソウス

オープソンースだとイマイチ違和感あるけど、ちぢめて
オプソンスにすると、まったく別物に変貌するけど馴染みがある音だ。

629 :名無しさん@お腹いっぱい。:03/06/06 15:49
>>628
オプションとちょっと似てるからか

630 :名無しさん@お腹いっぱい。:03/06/06 16:44
オープンソース = オープンソース
ソースが公開されてる = オープン・ソース

631 :名無しさん@お腹いっぱい。:03/06/07 02:27
公開されてる=publicじゃないのか?

632 :名無しさん@お腹いっぱい。:03/06/07 02:36
こういう文脈で public といえば再利用に制限を設けないという意味ではないかと

633 :名無しさん@お腹いっぱい。:03/06/07 02:46
日本語で「ソース公開ソフト」にしますか。

634 :名無しさん@お腹いっぱい。:03/06/07 02:59
むしろ、ソース丸見えみたいな感じかと。

635 :名無しさん@お腹いっぱい。:03/06/07 03:01
開算符

636 :名無しさん@お腹いっぱい。:03/06/07 03:05
/*
 * このソフトウェアはソース丸見えです。
 */

637 :名無しさん@お腹いっぱい。:03/06/07 03:27
"People can easily define the term 'nude'. There's no ambiguity.
With Nude Source, people will expect that the underlying, uh, source
will be, ah... readily accessibly for, ahem, fooling around with. Hmmm...
that didn't sound quite right. Well, you get the idea. While 'Open
Source' requires long, tedious explanations that most pundits and
PHBs won't understand anyways, 'Nude Source' is a very
self-explanatory concept."

638 :名無しさん@お腹いっぱい。:03/06/07 03:31
露天ソース

639 :名無しさん@お腹いっぱい。:03/06/07 03:40
In fact, RMS may actually endorse the term Nude Source. We can just
imagine his glee when he can truthfully say, "The GNU programs grope
and finger are licensed as Nude Source Software..."

640 :名無しさん@お腹いっぱい。:03/06/07 03:51
>>637
> With Nude Source, people will expect that the underlying, uh, source
> will be, ah... readily accessibly for, ahem, fooling around with. Hmmm...

ワロタ

641 :名無しさん@お腹いっぱい。:03/06/07 03:57
love and source

642 :名無しさん@お腹いっぱい。:03/06/07 04:44
ソースボート

643 :名無しさん@EMACS21:03/06/09 03:36
ruby-postgresで、tableの一覧を得る方法ってあります?

exec('\d')だとなんか構文が変エラーが出ます。
"\d"も\\dも同じエラー。根本的に違うのかなあ。

postgresでスラッシュじゃないコマンドを聞いた方が早いのか?!

644 :名無しさん@Meadow:03/06/09 07:42
ふつうに
SELEcT tablename FROM pg_tables WHERE schemaname = 'public'
でいけないの?

645 :名無しさん@お腹いっぱい。:03/06/09 11:14
Ruby の正規表現で最短マッチさせるやりかたがよくわかりません。
例えば

 <font size=+1>foo</font> bar <font size=+1>baz</font>

という文字列から <font>〜</font> を取り除き、

 foo bar baz

に変換したいのですが、

 gsub(/<font.*>(.*)<\/font>/, $1)

だと

 baz

だけになってしまいます。どうやれば良いのでしょう?


646 :名無しさん@お腹いっぱい。:03/06/09 11:51
 gsub(/<font.*?>(.*?)<\/font>/, '\1')


647 :645:03/06/09 11:56
>>646
わんだほー。
つーか、俺ってアホ。自分で自分の首しめてたわけね。


648 :名無しさん@お腹いっぱい。:03/06/09 17:19
オープンソースかどうかなんてどーでもいいと思うんだが。
ソフトウェアは自由でなければならない、っていう縛りを
設けたら、もうそれは「自由」じゃない気がするし。
Ruby は好きだけど matz さんの野望はよーわからん。


649 :名無しさん@お腹いっぱい。:03/06/09 19:28
>>648
「オープンソースかどうかなんてどーでもいい、ソフトウェアは自由でなけれ
ばならないっていう縛りを設けるな」というのもまた一面「自由」じゃない。


650 :名無しさん@お腹いっぱい。:03/06/09 20:26
まあ、マグロじゃないものもマグロとして売ってるし、
シシャモもシシャモじゃない世の中だから、
オープンソースソフトウェアが OSD 準拠じゃなくてもしょうがないやね。

651 :名無しさん@お腹いっぱい。:03/06/09 20:40
>>648
matzさんは「中の人」だからね。人生かかってるんでしょ。


652 :名無しさん@お腹いっぱい。:03/06/09 20:50
Matzさんの話をするための別なスレ作れよ。

653 :名無しさん@お腹いっぱい。:03/06/09 21:00
ライセンスあれこれスレに逝け。

654 :無料動画直リン:03/06/09 21:14
http://homepage.mac.com/norika27/

655 :名無しさん@お腹いっぱい。:03/06/09 21:34
フリーライダーwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

656 :名無しさん@お腹いっぱい。:03/06/09 21:42
つーか、ライセンスの話をするのに、「俺はこういう意味で使ってる」なんて
のは話にならんどころか、言い訳にもならんだろう。
定義に曖昧さが許されるライセンスってどこの星の話だ。


657 :名無しさん@お腹いっぱい。:03/06/09 21:45
>>656
どこでそんな話してんの?

658 :名無しさん@お腹いっぱい。:03/06/09 21:48
>>657
漏れの心の中。

659 :名無しさん@EMACS21:03/06/09 22:52
>644
おお、いけました。thanks。postgresは初心者なんで、そのフツーが判りませ
んでした。


660 :名無しさん@お腹いっぱい。:03/06/09 22:53
普通の SQL かと。

661 :名無しさん@お腹いっぱい。:03/06/10 01:14
オープンソースの話も大事だが、それよりも Ruby 1.8 をはやく
出して欲しいなあ。もうだいぶ予定をすぎているのに。
はやく 1.8 を出すほうが、オープンソースの啓蒙にもプラスになると思うんだけどなあ。
なまじあのblogが有名になっちゃったもんだから本題を外れてきた気がする。

662 :名無しさん@お腹いっぱい。:03/06/10 03:44
でもライセンスをきちんと理解してない人たちが
qt 関連で騒動を起こしたわけだよね。
エプソンのプリンタドライバが GPL 違反で一時
公開中止になったのとかもあるし、
ライセンスはかなり現実的な問題になっている。

663 :名無しさん@お腹いっぱい。:03/06/10 03:56
いつまでスレ違いレスを続ける気ですか?

664 :名無しさん@お腹いっぱい。:03/06/10 14:57
matzはオープンソースで一山当てたいわけか。

665 :名無しさん@お腹いっぱい。:03/06/10 16:16
>>661
おれはあれを見て、Perlな人が、いつも気をつけて発言していたってことが
やっと分かったよ。


666 :名無しさん@お腹いっぱい。:03/06/10 16:21
REXMLが入ったから、直preview3が出るだろ。

667 :名無しさん@お腹いっぱい。:03/06/10 17:00
>>666
「直」じゃなくて「時機」だな。

668 :名無しさん@お腹いっぱい。:03/06/10 17:09
「もうすぐ」だろうといいたかったんだが、
「タイミングによる」といいたいのか?

669 :名無しさん@お腹いっぱい。:03/06/10 17:51
>>667
違う「磁気」だ

670 :名無しさん@お腹いっぱい。:03/06/10 17:56
もう自棄。

671 :名無しさん@お腹いっぱい。:03/06/11 02:24
このスレはおもしろいですね。

672 :名無しさん@お腹いっぱい。:03/06/11 03:38
「直に」とか「直、」とか区切りがないとわかりにくいね

673 :667:03/06/11 04:13
スマソ、日本語不自由なのは漏れの方だったみたいだ。
>>666 の「直」の方が正しいんだね。

674 :名無しさん@お腹いっぱい。:03/06/11 19:41
Rubyxかよ!

675 :名無しさん@お腹いっぱい。:03/06/11 22:15
rubyxxかよ!

676 :名無しさん@お腹いっぱい。:03/06/11 23:05
ubyxなんてほんとにあるのかよ!

677 :るびきち:03/06/13 07:13
    ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      rubikitch

678 :名無しさん@お腹いっぱい。:03/06/13 09:46
でも独自のディレクトリ構造ってヤだな。

679 :名無しさん@お腹いっぱい。:03/06/14 03:28
[ruby-list:37790]はNavich。

680 :名無しさん@お腹いっぱい。:03/06/14 16:21
"a123b123456c12d"

"aXb123456cXd"
にしたいのですが
gsub(/(?=[^b])\d+/,'X')
しても
"aXbXcXd"
になってしまいます。よい方法を教えて下さい。


681 :あぼーん:03/06/14 16:26
http://homepage.mac.com/hiroyuki44/

682 :名無しさん@お腹いっぱい。:03/06/14 16:39
s = "a123b123456c12d"
s.replace "aXb123456cXd"

683 :名無しさん@お腹いっぱい。:03/06/14 16:45
rubyx?



684 :名無しさん@お腹いっぱい。:03/06/14 20:40
>>682
ありがとうございます。その方法でうまくいきました。

685 :名無しさん@お腹いっぱい。:03/06/14 20:58
うまくいくでしょうけど……

686 :名無しさん@お腹いっぱい。:03/06/14 20:59
ポカーン


687 :名無しさん@お腹いっぱい。:03/06/14 21:56
あ〜はっはっはっ! あ〜はっはっはっ!

688 :名無しさん@お腹いっぱい。:03/06/14 22:43
どんなスレにもど〜んとageで初心者質問してくるやつがいるのな。

689 :名無しさん@お腹いっぱい。:03/06/15 00:49
>>688
age で初心者質問すると何か不都合でも?

690 :名無しさん@お腹いっぱい。:03/06/15 01:14
ここは質問用スレじゃーないよ。一応。

691 :名無しさん@お腹いっぱい。:03/06/15 01:27
>>690
Ruby に関する質問すると何か不都合でも?

692 :名無しさん@お腹いっぱい。:03/06/15 01:32
>>691
>>690

693 :名無しさん@お腹いっぱい。:03/06/15 07:06
質問スレじゃないから、質問する時にageる意味は無いよ


694 :名無しさん@お腹いっぱい。:03/06/15 12:37
このスレ自体が板違いで、本スレはこっちだろたぶん↓
http://pc2.2ch.net/test/read.cgi/tech/1042004759/

695 :名無しさん@お腹いっぱい。:03/06/15 12:49
UNIX 板らしい話題って何か無いだろうか。

rubyx は linux だし。
#いちおー書いとくと[ruby-talk:73215]な。


696 :名無しさん@お腹いっぱい。:03/06/16 06:04
>>680
gsub(/\d+(?=[^b])/, 'X')

gsub(/\d+(?!b)/, 'X')

最後に数字があるときに違うけど。

697 :名無しさん@お腹いっぱい。:03/06/16 09:55
嘘はやめい。先読みは使えん
gsub (/([^b\d])\d+/, '\1X')

698 :名無しさん@お腹いっぱい。:03/06/16 17:21
勘違いしてた。b以外の後の数字か。それでも間違ってるけどな。

# Oniguruma専用
gsub(/(?<![b\d])\d+/, 'X')


699 :名無しさん@お腹いっぱい。:03/06/18 11:30
ラビット関根

700 :名無しさん@お腹いっぱい。:03/06/18 13:31
ライト兄弟


701 :名無しさん@お腹いっぱい。:03/06/18 22:48
鬼車の最新のってどこで配布されていますか?

702 :名無しさん@お腹いっぱい。:03/06/19 00:14
>>701
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/oniguruma/oniguruma.zip?tarball=1


703 :名無しさん@お腹いっぱい。:03/06/19 05:55
pre3 まだー?


704 :名無しさん@お腹いっぱい。:03/06/19 23:05
>>703
おちつけ。
日本時間で6月20日17時の予定だ。

705 :名無しさん@お腹いっぱい。:03/06/20 12:29
濡れてきた

706 :名無しさん@お腹いっぱい。:03/06/20 14:56
>>702
それは、本当に最新でしょうか?
たとえば、[ruby-dev:20189] で onigd20030514.tar.gz が出ていたはずですが、
そこには反映されていない (タイムスタンプが古い) ようですし。

707 :名無しさん@お腹いっぱい。:03/06/20 14:59
ftp://ftp.ruby-lang.org/pub/ruby/in.coming/onigd20030620.tar.gz

708 :名無しさん@お腹いっぱい。:03/06/20 20:30
で、preview3出ないんですけどぉ。


709 :名無しさん@お腹いっぱい。:03/06/20 23:43
ま、あと20分くらいあるから

710 :名無しさん@お腹いっぱい。:03/06/21 00:24
ruby-core にてpreview3のサスペンドが告知されてますけどね。
# みんな ruby-core は読んでないのか。

711 :名無しさん@お腹いっぱい。:03/06/21 00:48
んなもん読んでる暇ねーよ

712 :名無しさん@お腹いっぱい。:03/06/21 23:51
仕事でruby使ってるとこあるの?

713 :名無しさん@お腹いっぱい。:03/06/22 00:07
使ってるよ
まじだよ

714 :名無しさん@お腹いっぱい。:03/06/22 15:52
オナーニが私の仕事です


715 :名無しさん@お腹いっぱい。:03/06/22 16:49
Perlよりいいらしいから勉強しようかな?

716 :名無しさん@お腹いっぱい。:03/06/23 04:09
メソッド内でメソッド名を取得する方法を教えて下さい。
class A
def a
ここで"a"という文字列を取得したい。
end
end

717 :_:03/06/23 04:16
http://homepage.mac.com/hiroyuki44/

718 :名無しさん@お腹いっぱい。:03/06/23 05:04
>>716
irb(main):001:0> caller(0)
=> ["(irb):1:in `irb_binding'", "/usr/local/lib/ruby/1.8/irb/workspace.rb:52:in
`irb_binding'", "/usr/local/lib/ruby/1.8/irb/workspace.rb:52"]
irb(main):002:0> caller(0)[0]
=> "(irb):2:in `irb_binding'"
irb(main):003:0> caller(0)[0].match(/`(.+)'/)
=> #<MatchData:0x10183978>
irb(main):004:0> caller(0)[0].match(/`(.+)'/).to_a
=> ["`irb_binding'", "irb_binding"]
irb(main):005:0> caller(0)[0].match(/`(.+)'/)[1]
=> "irb_binding"
irb(main):006:0> def foo
irb(main):007:1> caller(0)[0].match(/`(.+)'/)[1]
irb(main):008:1> end
=> nil
irb(main):009:0> foo
=> "foo"


719 :名無しさん@お腹いっぱい。:03/06/23 18:27
出た。

720 :名無しさん@お腹いっぱい。:03/06/23 18:29
pre2 の時みたいに何か入れ忘れてるに 300 Matz


721 :名無しさん@お腹いっぱい。:03/06/23 18:32
pre2は何忘れてたっけ。

722 :名無しさん@お腹いっぱい。:03/06/23 18:55
>>721
Test::Unit と win32/registry.rb らしい。[ruby-dev:19711]


723 :名無しさん@お腹いっぱい。:03/06/23 19:28
どさくさにまぎれて何か余計なもんが混入してないかな?

724 :名無しさん@お腹いっぱい。:03/06/23 19:42
ぎく。

725 :名無しさん@お腹いっぱい。:03/06/23 23:31
.xvpics ハケーン

726 :名無しさん@お腹いっぱい。:03/06/24 01:25
>>722
早速MANIFESTとかいろいろ修正が入ったわけだ。

727 :名無しさん@お腹いっぱい。:03/06/24 02:36
修正するための preview だ

728 :名無しさん@お腹いっぱい。:03/06/24 03:18
>>725
慌てて確認してしまった matz 氏に乾杯。

729 :716:03/06/24 03:22
>>718
どうもありがとう。
参考になりました。

730 :_:03/06/24 03:34
http://homepage.mac.com/hiroyuki44/

731 :名無しさん@お腹いっぱい。:03/06/25 20:53
Set 、組み込みか拡張モジュールになんないかなぁ。

732 :名無しさん@お腹いっぱい。:03/06/25 21:20
組み込みメソッドで Set を返すべきものってあるか?

733 :名無しさん@お腹いっぱい。:03/06/26 05:44
組み込みで思い出したけど、仮に
Rational と Complex を組み込みにして mathn 相当にした場合、
動かなくなるコードは実際にはどんなのがあるんだろ?

734 :名無しさん@お腹いっぱい。:03/06/26 17:37
>>733
引数として Integer を期待するものに渡した場合とか。

735 :名無しさん@お腹いっぱい。:03/06/26 23:19
>>734
to_intを定義しとけば通るわけだが、それが望ましいかは微妙だな。

736 :名無しさん@お腹いっぱい。:03/06/26 23:42
何かの個数やサイズとして使う場合は問題ないと思われ

737 :名無しさん@お腹いっぱい。:03/06/26 23:47
>>733
古いRationalやComplexをmarshalしたデータを読むコード

738 :名無しさん@お腹いっぱい。:03/06/27 02:18
>>737
それは古い形式用のコールバックを定義すれば何とかなる気がするなあ

739 :名無しさん@お腹いっぱい。:03/06/27 02:39
>>738
例えばloadしたオブジェクトが_post_loadなんてメソッドを持ってたらそれを
呼ぶとか?
実際すでにStruct::StatとFile::Statがそういう状況なんだよな。


740 :YAML が欲すぃ:03/06/27 03:15
shim-ruby16_18-1.8.0-preview3 まだぁ?

741 :名無しさん@お腹いっぱい。:03/06/30 20:29
DBI とか DBD とかの入門に良さげなサイトやドキュメントってありますか?

742 :741:03/06/30 20:40
手元にあった Ruby Developer's Guide が良さげなんでこれで勉強してみまつ。

743 :名無しさん@お腹いっぱい。:03/07/01 17:46
影舞を入れてみようと思ったけど
QuickStartのguest.cgiにアクセスするところで500になってしまう。
シェルから直接実行したらちゃんとHTMLが出てくるのに。
rubyが1.6.7なのがいけないのだろうか。

744 :名無しさん@お腹いっぱい。:03/07/01 18:19
>>743
で、 error_log は確認しないわけ?

745 :名無しさん@お腹いっぱい。:03/07/01 18:35
いや、見れたら見るんだけど見つからない。
/var/log/apacheはないし

746 :名無しさん@お腹いっぱい。:03/07/01 19:19
で?

747 :名無しさん@お腹いっぱい。:03/07/01 22:57
影舞?


748 :名無しさん@お腹いっぱい。:03/07/02 00:55
>>747
影舞を知らないの?

749 :名無しさん@お腹いっぱい。:03/07/02 01:21
獅子舞?

750 :名無しさん@お腹いっぱい。:03/07/02 01:31
川澄舞?

751 :名無しさん@お腹いっぱい。:03/07/02 01:39
影舞重くねえ?


752 :名無しさん@お腹いっぱい。:03/07/02 04:28
だれか >>741 に『Ruby-DB ウェブデザイン』をすすめてやって下さい。


753 :741:03/07/02 04:57
>>752
漏れもさすがにそこまでバカじゃないでつ。

754 :名無しさん@お腹いっぱい。:03/07/02 09:28
>>748
もったいぶらないで教えてよ!


755 :名無しさん@お腹いっぱい。:03/07/02 10:17
もったいない

756 :名無しさん@お腹いっぱい。:03/07/02 15:01
PHP の Array みたいな、
ordered mapping っていうか、順序付き Hash の定番ってある?
つーか、標準添付して欲すぃ。

757 :名無しさん@お腹いっぱい。:03/07/02 15:34
>>756
PHP知らんのだけど、
> ordered mapping っていうか、順序付き Hash の定番ってある?
どういう順序を期待してるわけ?

758 :名無しさん@お腹いっぱい。:03/07/02 16:00
>>757
あ、PHP のっていうのは嘘かも。
each や each_keys などで、要素を任意の順序で得られる、という意味です。

759 :名無しさん@お腹いっぱい。:03/07/02 16:30
その「任意の順序」ってどういうものかを聞いてんだけど。
追加した順序?
keys.sortの順序?

760 :名無しさん@お腹いっぱい。:03/07/02 16:53
ですから、「任意の順序」です。

というか、好きな順序にさえできれば手段はどうでもいいです。
追加した順序でもいいですし、自由に sort できるならさらに嬉しいです。

あるいは、コンストラクタで、こんなふうに指定できるとか。
Hoge::new([["foo", 1], ["bar", 2], ["baz", 3]])
Hoge::new({"foo"=>1, "bar"=>2, "baz"=>3}, ["foo", "bar", "baz"])
Hoge::new("--- %YAML:1.0\n!omap\n- foo: 1\n- bar: 2\n- baz: 3\n")

いや、まあ、自分で作りゃあいいんでしょうけど、
順序付き mapping の需要って結構多いと思うので、
標準で添付されていた方がみんながしあわせになれるんじゃないかなあ、と。

761 :名無しさん@お腹いっぱい。:03/07/02 17:07
とりあえずPseudoHashってのはどうよ。
http://www.notwork.org/~gotoken/ruby/p/pseudohash/

762 :名無しさん@お腹いっぱい。:03/07/02 18:29
結局、ハッシュマップと配列を組み合わせる以上のパフォーマンスは出ないんじゃないのかな

763 :名無しさん@お腹いっぱい。:03/07/02 18:37
>>761
これは良いものですね。

で、需要が結構ありそうなのにもかかわらず、
これがなかなか標準添付にならないのは、
やっぱインターフェイスがいまいちきまらないからかなぁ、という気がしてきました。

PseudoHash のインターフェイスもいまいちな気がしますし、
もちろん私の挙げたものでもやっぱりかっこわるい。

764 :名無しさん@お腹いっぱい。:03/07/02 20:05
問題は順序の指定方法なんだろうな。
予め順序を決めておける場合と要素を追加することで決まる場合がありそう。

765 :名無しさん@お腹いっぱい。:03/07/02 21:08
>>764
ですね。あとは、同一キーの指定があった場合の挙動も。
例外を上げるか、無視するか、気にせず追加していくか。
new のときはどうするか? add のときはどうするか?
とか。

766 :名無しさん@お腹いっぱい。:03/07/02 21:08
>>763
なにより、需要が少ないんじゃないのか。結局。

767 :名無しさん@お腹いっぱい。:03/07/02 21:13
>>766
げ、やっぱりそうなんですかね。
じゃあ、この話題止めます。俺様 OrderedMapping で自己満足に耽ることにします。

768 :名無しさん@お腹いっぱい。:03/07/02 21:23
正直なとこ、これに関する要望ってあまりMLでは見たことない。
だからといって無用ともいえないわけで、試しにruby-listなりで賛同者を募ってみれば?
実装があるんなら出してみると話も速いかも。


769 :名無しさん@お腹いっぱい。:03/07/05 06:36
http://www.amazon.co.uk/exec/obidos/ASIN/0201710897/ref=pd_bxgy_text_2_cp/202-0656412-9223856

amazon.co.uk で Ruby 本の紹介文に以下のような文章が。

"Big in Japan" was a pejorative term for failed pop musicians, but it
accurately describes the Ruby language, designed by Yukihiro
Matsumoto. The authors--who wrote The Pragmatic Programmer--feel it
deserves a wider exposure in the English-speaking world.

「日本で大ヒット」とは、コケたミュージシャンに使う軽蔑的な言葉だったが、
その言葉はまつもとゆきひろによって設計された Ruby 言語を的確に表現して
いる。著者たち――The Pragmatic Programmer の著者たち――は、この言語
が英語圏においてさらに広く宣伝されるべきだと考えている。


日本で言う「アジアで大ヒット」みたいなかんじでつね・・・。

770 :名無しさん@お腹いっぱい。:03/07/05 10:23
つまり、今のところ Ruby は英語圏には十分広まっていない、
このままでは "Big in Japan" で終わってしまいかねない。

ということでつか?

771 :名無しさん@お腹いっぱい。:03/07/05 11:11
「日本で大ヒット」はしょぼいミュージシャンのための言葉だけど
でも、Rubyは本当に日本で大ヒットなんだよねってニュアンスなんじゃないの?

772 :名無しさん@お腹いっぱい。:03/07/05 13:37
日本で大ヒットしてるの?

773 :名無しさん@お腹いっぱい。:03/07/05 13:54
"but"だもんなあ。

774 :名無しさん@お腹いっぱい。:03/07/05 17:39
GUIプログラミングを始めようと思うのですが、
ruby/tk,ruby/gtkとかいろいろあるみたいでどれが良いのか分からないです。
今はどれを選ぶのが良いでしょうか。

775 :名無しさん@お腹いっぱい。:03/07/05 18:29
ruby/wxWindows

776 :名無しさん@お腹いっぱい。:03/07/05 19:18
wx はム板で熱いね。
【GUIライブラリ】wxWindowsでのひょーん
http://pc2.2ch.net/test/read.cgi/tech/1052186697/

777 :名無しさん@お腹いっぱい。:03/07/05 22:34
U*IX なら ruby/gnome2 がいいんじゃない。ruby/gtk は昔いろいろ触ってた
けどかなり簡単だった。(まあ凝ったウィジェット自作しようとするといろいろ
メンドイけど)

778 :名無しさん@お腹いっぱい。:03/07/05 23:16
GUIだけのためにGNOME2かよ!

779 :名無しさん@お腹いっぱい。:03/07/05 23:46
「日本で大ヒット」つってもいわゆるヘボミュージシャンみたいなやつのことじゃないぜ。
ちゃんと英語圏でも通用しうるようなやつなんだよ。

というのがこの本の著者たちのメッセージなんだと上の紹介文は言いたいのだろう。

780 :名無しさん@お腹いっぱい。:03/07/05 23:52
「日本で大ヒット」=ヘボそう

という先入観があっちではあるんだろう。

781 :名無しさん@お腹いっぱい。:03/07/06 00:01
>>779
でも、そう言わなきゃならないところがやはりアレなわけで。

782 :名無しさん@お腹いっぱい。:03/07/06 00:15
アレなのは「日本」なのがアレだな。

783 :名無しさん@お腹いっぱい。:03/07/06 00:37
>>778

>>777は、Ruby-GNOME2(プロジェクト名)と言いたかったんじゃないかと思われ。
より正確には、その中のRuby/GTK2(バインディング名)。

ttp://ruby-gnome2.sourceforge.jp
からたどれるサンプルを見れば、簡単さが分かると思う。
簡単なエディタは、(gladeでのインターフェース記述部を除けば)
300行弱で実装できてる。

と、ネタにマヂレス

784 :774:03/07/07 09:15
皆さんありがとうございます。
ruby/GTK2でやってみます。

785 :名無しさん@お腹いっぱい。:03/07/08 20:21
けいじゅさんナイスだなぁ。

あの方法で OrderedMapping を定義できるようになるとかなり嬉しい (しつこい) 。

こんなのが書けるようになると思うともう失禁しそうです。

data = %Y[
--- %YAML:1.0
hoge: fuga
foo:
- bar
-
baz: qux
]

786 :名無しさん@お腹いっぱい。:03/07/09 00:06
>>785
てきとーな yaml() が定義されてるとして、

data = yaml "
--- %YAML:1.0
hoge: fuga
foo:
- bar
-
baz: qux
"

じゃマズイ?


787 :名無しさん@お腹いっぱい。:03/07/09 01:20
>>786
いや、もちろんそれでも良いのですけれども、
(あたかも) リテラル記述できる (かのような気分になれる) ところが嬉しいのです。

D でええやん、という立場で言うなら、
現在でも下記のように書けるからええやん、ってな話になりますが、
それではちょっとさびしいな、という話です。

data = YAML::load(<<EOY)
--- %YAML:1.0
...
EOY


788 :名無しさん@お腹いっぱい。:03/07/09 02:22
なんとなく分かった。
リテラルっぽく見れる構文糖として欲しい、ってことなのね。

ただ「%?(..) の?のところを自由に定義(メソッドにマップ)できるように」するなら、
>>785 の例は、%Y[..] を YAML::load 以外にマップしているスクリプトと
共存出来なくない?

def Y(s)
 YAML::load(s)
end

だと Y が一般的すぎてマズー、てのと同じ問題をかかえると思われ。


789 :名無しさん@お腹いっぱい。:03/07/09 02:54
>>788
そうなんですよね。私もそれが問題だよなー、とは思ってました。
やっぱ難しいかなぁ・・・

790 :名無しさん@お腹いっぱい。:03/07/09 10:29
うーん。なんかあと一工夫でうまくいきそうな気もするけど
だめかなあ。

791 :名無しさん@お腹いっぱい。:03/07/09 16:19
foo = %P(# Perl script)
bar = %T(# Python script)
baz = %G(; Gauche script)

と、夢は際限なく広がるんだけど、驚き最小を思いっきり violate するよなぁ・・・

792 :名無しさん@お腹いっぱい。:03/07/10 01:11
>>791
Gaucheのやつは()で括ったら破綻すると思うが。
%G((if (foo) (bar) (baz))
↑どこまでが%リテラルになる?

793 :名無しさん@お腹いっぱい。:03/07/10 02:09
>>792
いえ、こう書くんです。
%G(\(if \(foo\) \(bar\) \(baz\)\))


嘘です。ごめんなさい。察してください。

794 :名無しさん@お腹いっぱい。:03/07/10 03:18
現状でも
%w( (foo) (bar) ) #=> ["(foo)", "(bar)"]
だから破綻しないのでは?

むしろ対応がとれてるのが確認できてうれしいぐらい。

795 :名無しさん@お腹いっぱい。:03/07/10 05:45
ruby 1.8.0 (2003-06-23) [i686-linux]
%w( (foo (bar) ) #=> ["(foo", "(bar)"]

ruby 1.6.7 (2002-03-19) [i386-linux]
%w( (foo (bar) ) #=> unterminated string meets end of file



796 :名無しさん@お腹いっぱい。:03/07/10 13:59
>>795
これはそれぞれのバージョンの仕様?それともどっちかがバグ?

797 :名無しさん@お腹いっぱい。:03/07/10 14:37
>>795
1.8.0がどういうルールで処理してるのか謎だな

798 :名無しさん@お腹いっぱい。:03/07/10 19:44
Winnyのエロクラスタで発見
210.251.121.214:48164 helium.ruby-lang.org

799 :名無しさん@お腹いっぱい。:03/07/10 21:54
>>798
む、Linuxで動くWinny実装があるのか?(藁)


800 :名無しさん@お腹いっぱい。:03/07/10 22:29
Wineで動きますけど何か?

801 :名無しさん@お腹いっぱい。:03/07/10 22:45
>>799
gateway でしょ (マジレス) 。

802 :名無しさん@お腹いっぱい。:03/07/10 23:52
>>801
helium は gateway してないよ (マジレス返し)。


803 :名無しさん@お腹いっぱい。:03/07/11 07:03
>>795
1.8のバグじゃないかな。

804 :名無しさん@お腹いっぱい。:03/07/11 15:43
仕様変更じゃない? greedyって言葉知らない?

805 :名無しさん@お腹いっぱい。:03/07/11 21:37
いや、バグ。
単語間でカッコのネストを保存し忘れてる。
#{}を変更したときのミス。


806 :名無しさん@お腹いっぱい。:03/07/11 22:33
保存し忘れというより、毎回初期化してしまってるというべきだった。
あー、でもこれstaticじゃなくできるかも知れないなぁ。

807 :名無しさん@お腹いっぱい。:03/07/11 23:42
>>805
そこまで分かってんなら、傍観よりもパッチ投げるなりなんなりしれ

808 :名無しさん@お腹いっぱい。:03/07/12 08:32
>>807
いや、matzだから

809 :807:03/07/12 14:03
え、>>808がmatz氏?
まだ IP unreachable なはずだと思ってた。
んじゃ、修正よろしくお願いします。

810 :名無しさん@お腹いっぱい。:03/07/12 14:56
nobuだろ。とっくにcommit済みだし。

811 :807:03/07/12 15:21
失礼。逝ってきます。

812 :山崎 渉:03/07/15 11:19

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

813 :名無しさん@お腹いっぱい。:03/07/19 14:01
>>804
greedyってなに?
正規表現と関係ある?

814 :名無しさん@お腹いっぱい。:03/07/19 14:06
>>813
そう思ったんなら「正規表現 greedy」でぐぐる。

815 :名無しさん@お腹いっぱい。:03/07/22 21:26
>>751
影舞入れてみたのですが、使い物にならないほど遅い。
ruby が 1.6.7 だから?
postgres 使わずに xml で保存してるから?
mod_ruby 入れてみたがとくに早くならなかった。
ところで影舞スレどこかしら。


816 :名無しさん@お腹いっぱい。:03/07/25 23:48
斉藤さん頑張って! 応援してるからね!
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/20903

817 :名無しさん@お腹いっぱい。:03/07/26 08:54
>>816
皮肉? それとも素直に?
斎藤も房臭いような。

818 :名無しさん@お腹いっぱい。:03/07/26 19:22
>>815
> ところで影舞スレどこかしら。
ここでもいいんじゃないすか?

「使い物にならないほど遅い」って具体的にどう遅いのか知りたいところ。


819 :名無しさん@お腹いっぱい。:03/07/26 22:17
1.8に上げてみるとか。
Stringの連結が速くなってるから変わるかも知れない。

820 :名無しさん@お腹いっぱい。:03/07/28 13:57
>>818
http://www.daifukuya.com/kagemai/guest.rbx?project=normaldemo&action=top
ここに「トップ」というリンクがありますが、
ウチのだとそのリンクを押すと10秒ぐらい反応がないんです。
バグは 700 個ほど入力してみて、「トップ」を押した時には 50 個ほど表示されます。
mod_ruby 使用、PostgreSQL未使用。
ruby 1.6.8 を使用。FreeBSD4.3。
PostgreSQL を使って試してみようとしたのですが、
こちらはインストールにしくじって、まだ動かせてません…

>>819
注意: ruby-1.8.0-preview1 では正しく動作しません。
って書いてあるから無理なのかも。


821 :名無しさん@お腹いっぱい。:03/07/28 15:07
以前1.8で動かそうとしたけど、StringIOのまわりでなんかエラーになって先に進めなかった記憶が。>影舞

822 :名無しさん@お腹いっぱい。:03/07/28 17:40
preview5 age

823 :名無しさん@お腹いっぱい。:03/07/28 19:16
もどるび Apache2 対応 sage

824 :名無しさん@お腹いっぱい。:03/07/28 20:17
時間がないぞage

825 :名無しさん@お腹いっぱい。:03/07/28 20:18
告白したいけど、自分に自信がない。それでも胸の奥が苦しくて・・・
そのような方、諦めないで。
ここでは、異性に効果を発揮する香水、合法ドラッグなどがおかれています。
小売価格一万円以上の品が、半額以下の値段で取引されています。
是非ここでゲットして、貴方の気持ちを打ち明けて下さい。
相手の方も、きっとそれを待っていますよ。

↓のURLの頭にhを付けて、コピー、ペーストして下さい。

ttp://www.adultshoping.com/index.cgi?id=1057809839


826 :名無しさん@お腹いっぱい。:03/07/28 21:26
なんの時間だsage

827 :名無しさん@お腹いっぱい。:03/07/29 00:39
BigDecimalが1.8.0リリースのネックになる予感・・・!!


828 :名無しさん@お腹いっぱい。:03/07/29 02:38
ありゃだめだね。Rubyの一貫性ぶち壊しじゃん。

829 :名無しさん@お腹いっぱい。:03/07/29 03:23
数学苦手な漏れには何を揉めてんだかサパーリわかんね。

830 :名無しさん@お腹いっぱい。:03/07/29 08:58
>>828
厨に標準添付ライブラリを作らせたらあかんよ

831 :名無しさん@お腹いっぱい。:03/07/29 09:12
なんのこといってんの?わりざん?

832 :名無しさん@お腹いっぱい。:03/07/29 10:00
BigDecimal#divって何返すんだ?

833 :名無しさん@お腹いっぱい。:03/07/29 10:36
RationalとComplexを組み込みにして/は除算、divは整除にすればいいのに。
んでもってPythonみたいにComplexのリテラルも用意する。
現状はint/int→intに拘ってるせいでやたら複雑にみえる。
結果をIntegerにする必要があるところではto_intなんぞを呼べばいいわけで。

834 :828:03/07/29 11:40
>>830
なぜ厨を止める力すらないのだろう、Rubyコミュニティ。

835 :名無しさん@お腹いっぱい。:03/07/29 12:05
>>829
他のNumericとの整合性を志向しない「ヲレ」路線なとこ。

>>832
Float#/ 相当。ただし二番目の引数で計算結果の桁数を
指定できるところが違う。

>>833
それもいいのかも。後方互換性を無視できる勇気があれば、ね。


836 :名無しさん@お腹いっぱい。:03/07/29 14:00
>>833
idivという提案もあるな。

>>834
厨とは言いすぎじゃあ。
あの仕様に拘りが強くて他との整合性より優先してるだけで。
…って結構困りもんだな。



837 :名無しさん@お腹いっぱい。:03/07/29 14:22
> 仕様に拘りが強くて他との整合性より優先

割り算の話だけじゃないしね

838 :名無しさん@お腹いっぱい。:03/07/29 18:17
一部のlispみたいに内部で分数にして持ったらどうだろう

839 :名無しさん@お腹いっぱい。:03/07/29 18:59
>>838
普通の Ruby プログラマは、分数だとか精度の高い数だとかに興味はないと思うので、
そんなことされても (効率やパフォーマンス的に) うざったいだけのような気がする。

840 :名無しさん@お腹いっぱい。:03/07/29 19:57
ruby発の別言語にした方がいい、と?

841 :名無しさん@お腹いっぱい。:03/07/29 23:22
BigDecimalを標準ライブラリ化キボンした流れを知りたい。
MLのどのあたり?


842 :ド素人:03/07/29 23:43
BigDecimalっつーのがあると何が便利なんだ?
Rubyの整数は、ほぼ無限じゃなかったのか?

843 :名無しさん@お腹いっぱい。:03/07/29 23:47
小数の扱いじゃないの?

844 :名無しさん@お腹いっぱい。:03/07/30 12:34
>>841
[ruby-dev:16547]。当時の名前はBigFloat。
その前のメールでmatzが「いつの間にか」と述べているように、特に誰の
了解もなくいきなり入っていた。

845 :名無しさん@お腹いっぱい。:03/07/30 13:59
なんであんなにレベルの低いコードが標準添付になれるのか。
マジで鬱だ…

846 :名無しさん@お腹いっぱい。:03/07/30 20:09
>>845
そなの? これはよく読んでないんだが。

847 :名無しさん@お腹いっぱい。:03/07/30 21:37
[ruby-talk:77420]
Kamasutraアルゴリズム禿しく実装きぼんぬ。


848 :名無しさん@お腹いっぱい。:03/07/30 22:47
使わなきゃいいじゃん。ボイコットだボイコット。

849 :名無しさん@お腹いっぱい。:03/07/31 00:21
BigTomorrow


850 :名無しさん@お腹いっぱい。:03/07/31 14:33
rubyのリリースエンジニアリング(っていうの?)って絶対に間違っていると
思うなあ。
ruby-talk 77509 に激しく同意

と、ここでいってもしょうがないんだが。

851 :名無しさん@お腹いっぱい。:03/07/31 16:37
>>850
絶対に間違っているというのは同感だが、「これがRubyのやり方だ」となると
まーそーゆーもんか、とも思わないでもない。
そう思わせちゃうあたりがマイナーたる所以なんだろうけどさ。

ところでリリースエンジニアリング担当氏はいずこへ?

852 :名無しさん@お腹いっぱい。:03/07/31 16:38
previewあとふたつか。

853 :名無しさん@お腹いっぱい。:03/07/31 17:56
>>851
> ところでリリースエンジニアリング担当氏はいずこへ?
いたっけ?

>>852
preview6が出たからあと一つ


854 :名無しさん@お腹いっぱい。:03/07/31 19:57
リバースエンジニアリングって一体何のこと?
(言葉自体はもちろん知ってるよ)

ruby-talk 77509 って今読んだけど
「最近のpreviewはリリース間近とは思えないほどひどい。もうちょっと時間を取れ」ってことだよね

855 :名無しさん@お腹いっぱい。:03/07/31 20:00
さて、どう料理しましょうか。

856 :ちんこ:03/07/31 20:00
rubyスクリプト上で
`rehash`
とか書いても、command not found: rehash
なんですけど、こういうbuiltin@tcshなコマンドを`foo`とかするのって、
どうすりゃええのん?

857 :名無しさん@お腹いっぱい。:03/07/31 20:09
>>854
ネタだったらごめん。「リリース」エンジニアリングね。

>>856
そのスクリプトは tcsh から起動するもの?
だったら、tcsh の子供のそのスクリプト上でいくら `rehash` しても、
親の tcsh に rehash の効果を与えるのは無理ではないかと。

858 :名無しさん@お腹いっぱい。:03/07/31 20:17
あぁリリースか。素で見まちがえた。

859 :ちんこ:03/07/31 20:32
>>857
サンクスコ。
そう、tcsh上で起動したスクリプトにおける話。
たとえば/usr/local/binに何らかの実行ファイルを置くようなスクリプトを書いた場合、
それをスクリプト実行中に反映させるようなことはできんのかな、と。
なんか全然rubyな話じゃ無いな。

860 :名無しさん@お腹いっぱい。:03/07/31 22:06
>>853
異人さんが名乗り出たと聞いてるけど、名前を覚えられなかった。

861 :名無しさん@お腹いっぱい。:03/07/31 22:16
BigDecimalは、もうしばらくRoughで揉んだほうがいいんじゃないかな。

862 :名無しさん@お腹いっぱい。:03/07/31 22:24
>>861
同意。よく揉まれまくってから出直してね。

863 :名無しさん@お腹いっぱい。:03/07/31 22:27
揉まれまくり (;´Д`)ハァハァ

864 :名無しさん@お腹いっぱい。:03/07/31 22:33
巨乳は、もうしばらく手荒く揉んだほうがいいんじゃないかな。


865 :名無しさん@お腹いっぱい。:03/07/31 23:44
[ruby-dev:21044]
> > ところで、自分が[ruby-dev:20959]で指摘した、BigDecimal#divmodの
> > バグはまだ直っていないみたいです。こちらは、修正をお願いできる
> > でしょうか。
> 仕様通りに動いているのがどうしてバグですか?
> (返事は結構です)
もっと言い方があるだろうに……

なんか、ネタでやってるとしか思えん。


866 :名無しさん@お腹いっぱい。:03/08/01 01:17
MUAがどっちも Outlook なのが気になる。
説得力あること書いても効果が半減してしまっているような。

867 :名無しさん@お腹いっぱい。:03/08/01 03:30
いっそのこと BigDecimal 削除したほうが解決はやそうだな…

868 :名無しさん@お腹いっぱい。:03/08/01 03:42
>>867
マジで禿同。
頭冷やしてじっくり仕様検討し直してから入れる、の方が良いと思う。
あんな揉めてるの見たら、今入れたって使いたいと思うひとはいないのでは?

869 :名無しさん@お腹いっぱい。:03/08/01 03:45
>>868
同じく。
つーか入れても速攻で仕様変わるべ。絶対。


870 :名無しさん@お腹いっぱい。:03/08/01 04:21
このまま入るだろ。入れるなっていう人はいないし。

871 :名無しさん@お腹いっぱい。:03/08/01 04:38
単なるヲチならまあいいけどほんとに入れて欲しくないならちゃんと文句いえよ

872 :名無しさん@お腹いっぱい。:03/08/01 04:39
MLのBigDecimal関連を軽く読んでみたけど、難しくてよくわからん。
ただ、作者は、例えば 2 * "3" の結果は 6 になるべきだと考えてる所だけわかった。
これだけからしても、根本的な思想が別の言語の思想になっちゃってるから
回りといろいろ意見が合わないのかなぁと勝手に想像。

873 :名無しさん@お腹いっぱい。:03/08/01 04:53
おいおい、どこにそんなこと書いてあった(藁
主な具体的な問題は div が BigDecimal 以外のクラスと
演算子の意味が違うことだが、そん事よりも
BigDecimal 作者の姿勢が
「他の事なんかシラネーヨ、数学的にはこっちの方が正しいはずなんだから
 漏れだけ譲歩するのは嫌だね、そっちが譲歩するか
 両方譲歩するかじゃないと、変更するつもりはネーヨ。氏ね糞」
ってな感じなところだろ。

874 :名無しさん@お腹いっぱい。:03/08/01 05:47
[ruby-dev:20531] とかを見ると、 BigDecimal.new("2") * "3" は 6になってほしいらしいよ。

いずれにしろ自分が正しいと信じて疑わない姿勢が、ちょっと…

875 :名無しさん@お腹いっぱい。:03/08/01 06:17
>>874 同意。
見てみた。確かに。
ruby は ruby 的な考え方、というか、既に標準的な実装があるのだから、
その流れに沿うように作ってくれれば良いのだけどねぇ。
なんか、変なところでつっかかってくる。

876 :名無しさん@お腹いっぱい。:03/08/01 08:39
自分が欲しいだけのものは、自分だけで使えと。

877 :名無しさん@お腹いっぱい。:03/08/01 08:55
斉藤ちゃん、ああまで言われたなら、もう fork するしかないっしょ。
CorrectBigDecimal とかなんか命名したら?

require 'correctbigdecimal'
BigDecimal = CorrectBigDecimal


878 :名無しさん@お腹いっぱい。:03/08/01 09:26
>>877
[ruby-dev:20392]
>自分は勉強のために多倍長整数のライブラリを書いていまして

最初から、forkの準備はある程度できている?(w

879 :名無しさん@お腹いっぱい。:03/08/01 09:41
>>877
Decimalで組込みとか。

880 :名無しさん@お腹いっぱい。:03/08/01 12:57
原先生が参戦しますた!

881 :名無しさん@お腹いっぱい。:03/08/01 13:23
「検討時間が不足ということで」ってんなら、
BigDecimal 自体を pending にすりゃいいのに。

あぁ、言っちゃいけない、でも言いたい、

  m a t z 必 死 だ な

882 :名無しさん@お腹いっぱい。:03/08/01 14:04
8/4までにリリースすれば MACOS に入るんだっけ?


883 :名無しさん@お腹いっぱい。:03/08/01 15:03
不要な物/事をいかに reject するかが、
オープンソースプロジェクトのリーダーの手腕の見せ所と言えるね。
強制的な方法でやると後で粘着がウザイし、まじでmatz必死だな。

884 :名無しさん@お腹いっぱい。:03/08/01 16:14
ウザいながらもせっかくの協力だから
うまく生かす方向で、とか?

885 :名無しさん@お腹いっぱい。:03/08/01 16:28
>>883
> 不要な物/事をいかに reject するかが、
> オープンソースプロジェクトのリーダーの手腕の見せ所と言えるね。
一歩間違えば協力者が寄り付かないプロジェクトになっちまうからね。

886 :名無しさん@お腹いっぱい。:03/08/01 17:19
Gentoo Linux 誕生秘話
http://www-6.ibm.com/jp/developerworks/linux/010223/j_l-dist1.html

変人のあしらい方、これ重要。
# だが、今回は中途半端にコードのかける変人だからねぇ。

887 :名無しさん@お腹いっぱい。:03/08/01 17:37
>>886
うーむ、そこの定義を見る限りでは、「変人」と呼ばれるのはむしろ
このスレでくだを巻いてる我々の方のような気も。

888 :名無しさん@お腹いっぱい。:03/08/01 17:45
確かにそうかもしれん
ただし直接的な行動は全くないから
プロジェクトの進行には響かない......はずw

889 :名無しさん@お腹いっぱい。:03/08/01 19:58
class BiqDecimal
def +(y,n=0) [y,n] end
end

x = BiqDecimal.new
p x + 1
p x.+(1)
p x.+(1,2)

890 :名無しさん@お腹いっぱい。:03/08/02 01:43
遅れたけど
>>881
禿同。

891 :名無しさん@お腹いっぱい。:03/08/02 02:10
斉藤ちゃん、まだ見放してなかったよ!

892 :名無しさん@お腹いっぱい。:03/08/02 02:20
ん?全面戦争か?

893 :名無しさん@お腹いっぱい。:03/08/02 02:24
これか。
ttp://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/21062?21033-21062

痛恨の一撃という感じだが…痛みを感じない敵もいるからな、
さてはて、あとはmatz次第といった感じだ。

894 :Seisei_Yamaguchi:03/08/02 02:28
Ruby流インタフェースも追加 ( 両方使える ) しないとダメ説 .
切り替えわシステムレベルで .
切り替え機構は永遠に未実装とか .


895 :894:03/08/02 02:35
いやインタフェースだけ揃っても駄目かスマソ


896 :894:03/08/02 02:43
ついでに連パピ .
せっかく作ってくれた事への敬意を形にする意味で
今回は入れておいて次回以降にまた考えればいいんじゃネーノ .


897 :名無しさん@お腹いっぱい。:03/08/02 02:59
1.8.0 で入れておいて,速攻で次の 1.8.1 を出して、そこで削除etc..とか?
1.6 系から新しくなった最初のリリースだからなぁ。あんまり後々にいらぬ後方互換性
の問題を残さない方が良いと思う。別に,あとから追加で入れることはできるのだし。

898 :名無しさん@お腹いっぱい。:03/08/02 02:59
matzは入れるって言うだろうな。
入れなかったら作者がスネてしまいそうだし。

899 :名無しさん@お腹いっぱい。:03/08/02 04:00
作者が去ってもコードは残る。(w


900 :ぼるじょあ ◆yBEncckFOU :03/08/02 04:57
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

901 :名無しさん@お腹いっぱい。:03/08/02 05:17
こぱしげっちのページの時計アプレットを諸君はどう思うか。

902 :名無しさん@お腹いっぱい。:03/08/02 05:37
>>901
URLクレクレ

903 :名無しさん@Emacs:03/08/02 08:17
いま、http://www.ruby-lang.org/ 落ちてますな。

904 :名無しさん@お腹いっぱい。:03/08/02 08:33
ますなあ

905 :名無しさん@お腹いっぱい。:03/08/02 08:36
>>893
だから fork しちゃいなって。

今は味方は少ないように見えても、1.8.0 がリリースされたら、
ruby-talk とかからも斉藤ちゃんと同じ意見を持つ人がたくさん出て来るんだから、
そのたびに「私はそう思って、もっとまともなライブラリを用意してます」って、
言えばいいんだから。

それを
10回繰り返すと・・・「RubyWay2(?)」に“こちらの方がまともなライブラリ”と紹介される
20回繰り返すと・・・ruby-talk からも「こっちの方を標準にすべきでは?」と意見が出る
30回繰り返すと・・・Matz が「そうかな?」と言い出す
んだから。

906 :名無しさん@お腹いっぱい。:03/08/02 09:50
ttp://www.tinyforest.gr.jp/

907 :名無しさん@お腹いっぱい。:03/08/02 10:41
だれか[ruby-talk:77777]getしる!!!

908 :名無しさん@お腹いっぱい。:03/08/02 16:17
グラフ処理と動的シュミレーション
ttp://www.tinyforest.gr.jp/memo/graph.html

さっぱり分かんねぇ。
こぱしげっちってその分野では偉人なのか?

909 :名無しさん@お腹いっぱい。:03/08/02 21:44
忙しいというのを口実に対応を渋る態度が見え見えだしな。
今、標準として入れても、うまくメンテしていけねーべ。

910 :名無しさん@お腹いっぱい。:03/08/03 10:18
というか、CPANみたいに拡張ライブラリが簡単にインストールできる方法があれば、
糞も味噌もなんでも標準配布に入れなくて済むんじゃないの?

なんとなく、そこらへんが間違っているような……。


911 :名無しさん@お腹いっぱい。:03/08/03 12:27
>>910
それは違うと思う。

912 :名無しさん@お腹いっぱい。:03/08/03 12:33
ちなみにCRANていう名前はRが使ってるから4649!

913 :名無しさん@お腹いっぱい。:03/08/04 08:44
こぱしげ氏、matz氏の
> 最終的な判断の前に小林さんの意見をお伺いしたいと思います
に反応する気配がないね。
牛歩戦術ならぬ無歩戦術に出た模様。

914 :名無しさん@お腹いっぱい。:03/08/04 10:34
まったく迷惑な奴だ。

915 :名無しさん@お腹いっぱい。:03/08/04 10:38
無歩戦術なんかしてたら標準配布から外す理由としちゃ十分だろ。

916 :名無しさん@お腹いっぱい。:03/08/04 11:24
>>915
そうそう。
Matz としては精一杯、こばしげ氏の立場を考えてああ書いているのに、
それでスネてる時点でもう終わってるような。

917 :名無しさん@お腹いっぱい。:03/08/04 14:53
>>913
土日はメールを読まない/読めないということもありえるだろう。
今は金曜の夜から溜まりに溜まったメールを処理してるのかもしれんし。

918 :名無しさん@お腹いっぱい。:03/08/04 19:24
ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.0.tar.gz

919 :名無しさん@お腹いっぱい。:03/08/04 19:46
とりあえず、祝リリース!

920 :名無しさん@お腹いっぱい。:03/08/04 20:04
1.8.0リリースage

ChangeLog:
For the changes before 1.8.0, see doc/ChangeLog-1.8.0

入ってませぬ。

921 :名無しさん@お腹いっぱい。:03/08/04 22:32
>>920 それは1.8.1から追加されるのでは?(cvsにはすでにエントリがある)


922 :名無しさん@お腹いっぱい。:03/08/04 22:35
>>921
単に入れ忘れじゃ。

923 :名無しさん@お腹いっぱい。:03/08/04 22:49
チェック漏れだようわーん。

924 :名無しさん@お腹いっぱい。:03/08/04 23:18
だからね、fork して、自分のライブラリとして出せって言うとるのに。
分かっとらんやっちゃなあ。


・・・聞いてないのは分かってるけどよー。

925 :名無しさん@お腹いっぱい。:03/08/04 23:41
うわーん。ia64 なHPUXでコンパイルできなかった。
C言語とかぜんぜんわかんねーよ。

926 :名無しさん@お腹いっぱい。:03/08/05 00:24
843 :デフォルトの名無しさん :03/08/01 01:55
るびきち著『Rubyシェルプログラミング−irb&irbsh徹底活用−』8月4日発売です
http://www.gihyo.co.jp/books/syoseki.php/4-7741-1798-6

基本的にこの人は他人との意思疎通が不可能な引き篭り星人な為、
何を言っているのか、何を伝えたいのかが全く見えません。故に専門書としては全く使えません

ではこの本のウリは何か?それは「他人をムカつかせるにはどうすればいいのか?」という厨房必修のスキル養成本としての価値に
他ならないでしょう。礼儀をわきまえない砕けすぎた態度から始まり、徐々に高圧的な態度へ、最後は相手を全否定し卑下し、自分が
相手に比べ、如何に優れた人間であるかを延々と語り続けるその試合運びに、各地厨房サイトから歓声が上がっております
なんとあの、2ちゃんねるネトヲチ板の皆様からも「掲示板のレスが反感を買うための例文集のようだ」とのお墨付きを得ております


そして「絶対零度つまらなギャグ集」としての機能も持ち合わせております。
なぜ、ウケ狙いの小ネタが、そこまでつまらないのか?スベろうと努力したってそこまでつまらない発言できるものではありません
正に天が与え給った才能だNe!! 合コンで思いっきりスベッて周りからジト目で見られてみたいソコのあなた!必読です。

参考文献 Rubyを256倍使うための本 魔道編

927 :名無しさん@お腹いっぱい。:03/08/05 01:07
>>925
エラーメッセージはってくれ。

928 :名無しさん@お腹いっぱい。:03/08/05 01:49
>>926
ワロタがけっこう同意。


929 :名無しさん@お腹いっぱい。:03/08/05 01:53
やっぱ unicode いじるには uconv なのかしらん?
標準ライブラリには採用されないのかなぁ。


930 :名無しさん@お腹いっぱい。:03/08/05 08:16
>929同意。採用されないのはテーブルのサイズがでかいから?


931 :名無しさん@お腹いっぱい。:03/08/05 08:57
1.6.8 から 1.8 でソースのサイズが二倍になったそうですが。

932 :名無しさん@お腹いっぱい。:03/08/05 09:16
tkのサンプルに、同じ画像が二つずつ入ってるそうだ。

933 :名無しさん@お腹いっぱい。:03/08/05 09:55
いろいろ理由はあったにせよ、今回のリリースはあまりにもテストが十分でなさすぎると思う。
正式リリースの直前まで標準ライブラリがはっきり決まらないなんて、異常だよ。

934 :名無しさん@お腹いっぱい。:03/08/05 11:58
>>933
s/今回のリリースは/今回のリリースも/

935 :名無しさん@お腹いっぱい。:03/08/05 12:32
shim まだぁ?

936 :名無しさん@お腹いっぱい。:03/08/05 12:59
>>933
同意。
feature freeze したくないのは分かるし、
決まったときに出さないといつまでも出せないからそうしたんだろうけど、
昨日の時点で「このままの状態であと1ヶ月テストしてからリリースとします」って言って、
ブランチだけ切っちゃえば良かったんだ。

current そのままをリリースにしちゃうのはリスク大きすぎ。

937 :名無しさん@お腹いっぱい。:03/08/05 13:23
>>936
リリースしてからブランチ切ること自体が変?

938 :名無しさん@お腹いっぱい。:03/08/05 13:31
ところで、いつまでたってもRiteの開発に移行しないのはなぜ?
1.x系はこれ(1.8)で最後ってしたら何がまずい?

939 :名無しさん@お腹いっぱい。:03/08/05 14:26
こばしげ無歩戦術、成功。

940 :名無しさん@お腹いっぱい。:03/08/05 14:48
>>938
2.0 はかなり実装が変わる予定だから、互換性なくなりすぎるよ。
拡張ライブラリは間違いなく全滅するしな。


941 :名無しさん@お腹いっぱい。:03/08/05 15:14
BigDecimal は floor が変だね。
BigDecimal('-0.5').floor が 1。
とりあえず ceil-1 に再定義しとくか...

942 :名無しさん@お腹いっぱい。:03/08/05 16:54
>>938
次の開発版は1.9.0で、その結果の安定版として1.9.1を出す
という方針じゃなかったっけ?
んで2.0がRite(バイトコードインタプリタ)。

バイトコード化(?)以外にも、M17Nやら世代別GCやら
大きな改造がある予定(これらは拡張ライブラリへの
互換性の影響はないはず)なので、それらが1.9.1に
盛り込まれるのかな。

943 :名無しさん@お腹いっぱい。:03/08/05 19:10
ほんとに、こぱしげは無責任というよりもあきれた奴だな。
緊急時にまったく意見せず、リリースされてから意見してやがる。
それだけじゃない。忙しいとかボランティアなんだから
と言って、そもそも自分にはメンテする責任はない
ということを示唆しようとしてる。

自作ライブラリが標準採用されることは
光栄なことだという感覚はないのかねー?

944 :名無しさん@お腹いっぱい。:03/08/05 19:32
え、互換性なくなるの・・・?

945 :名無しさん@お腹いっぱい。:03/08/05 19:42
というわけで、1.8.0 は unstable ということでよろしいでしょうか?

ってなチャチャはともかくとして、
今後のロードマップがまとめられているサイトってありますか?

946 :名無しさん@お腹いっぱい。:03/08/05 21:16
>>945
The RWiki - リリース予想
http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=%A5%EA%A5%EA%A1%BC%A5%B9%CD%BD%C1%DB

947 :名無しさん@お腹いっぱい。:03/08/05 21:20
>まぁ、今の形でもいいから使い
>たいという人がいるのは確かですから...

おまえだけだよっ

>「非互換性」が生じたとしても、それはどちらかが一方的
>に他方にすり寄るものではなく、その都度考慮されるもの
>であると信じます。

非互換性が増えるだけだ。
こいつぁ自分だけ都合の良い方向にしか考えてないのかね。

>>943
>そもそも自分にはメンテする責任はない
>ということを示唆しようとしてる

そうなら、おとなしく人様がくれたパッチあててりゃいいのに。
自分が内々に使ってるプログラム変更したくないからか、それもしないし。

ま、BigDecimal については、漏れは利用者としても全く関係ないのでsage

948 :名無しさん@お腹いっぱい。:03/08/05 22:04
明示的に使わなければ大丈夫だよな
演算によって勝手に変換されたりしないよな

あとは、BigDecimalに合わせるために
他のが変更されたりしなければ
漏れも全く関係ないのでsage

949 :名無しさん@お腹いっぱい。:03/08/05 22:23
>>927
じゃあお言葉に甘えて。

cc +Z -g -I. -I/home/orenonamae/arc/ruby-1.8.0 -I/home/orenonamae/arc/ruby-1.8.0 -I/home/orenonamae/
arc/ruby-1.8.0/ext/curses -DHAVE_CURSES_H -DHAVE_ISENDWIN -DHAVE_UNGETCH -DHAVE_BEEP -DHAVE_GE
TNSTR -DHAVE_WGETNSTR -DHAVE_DOUPDATE -DHAVE_FLASH -DHAVE_DELETELN -DHAVE_WDELETELN -DHAVE_KEY
PAD -DHAVE_KEYNAME -DHAVE_INIT_COLOR -c curses.c
Warning 942: "curses.c", line 434 # Types 'const char *' and 'int' are not
assignment-compatible.
name = keyname(NUM2INT(c));
^^^^^^^^^^^^^^^^^^^
Error 187: "curses.c", line 846 # Referenced object '_maxy' is not a member of struct
__reserved_str1 ["/usr/include/curses.h", line 112].
return INT2FIX(winp->window->_maxy+1);
^^^^^^^
Error 187: "curses.c", line 867 # Referenced object '_maxx' is not a member of struct
__reserved_str1 ["/usr/include/curses.h", line 112].
return INT2FIX(winp->window->_maxx+1);
^^^^^^^
Error 187: "curses.c", line 884 # Referenced object '_begy' is not a member of struct
__reserved_str1 ["/usr/include/curses.h", line 112].
return INT2FIX(winp->window->_begy);
^^^^^^^
Error 187: "curses.c", line 901 # Referenced object '_begx' is not a member of struct
__reserved_str1 ["/usr/include/curses.h", line 112].
return INT2FIX(winp->window->_begx);
^^^^^^^
Error 172: "curses.c", line 1367 # Undeclared variable 'A_INVIS'.
rb_curses_define_const(A_ATTRIBUTES);
^^^^^^^^^^^^^^^^^^^^^^

950 :名無しさん@お腹いっぱい。:03/08/05 22:23
>>949
Error 172: "curses.c", line 1377 # Undeclared variable 'A_PROTECT'.
rb_curses_define_const(A_PROTECT);
^^^^^^^^^^^^^^^^^^^^^^
Error 172: "curses.c", line 1381 # Undeclared variable 'A_ALTCHARSET'.
rb_curses_define_const(A_ALTCHARSET);
^^^^^^^^^^^^^^^^^^^^^^
Error 172: "curses.c", line 1401 # Undeclared variable 'A_COLOR'.
rb_curses_define_const(A_COLOR);
^^^^^^^^^^^^^^^^^^^^^^
Error 172: "curses.c", line 1406 # Undeclared variable 'COLOR_BLACK'.
rb_curses_define_const(COLOR_BLACK);
^^^^^^^^^^^^^^^^^^^^^^
Error 172: "curses.c", line 1407 # Undeclared variable 'COLOR_RED'.
rb_curses_define_const(COLOR_RED);
^^^^^^^^^^^^^^^^^^^^^^
Error 172: "curses.c", line 1408 # Undeclared variable 'COLOR_GREEN'.
rb_curses_define_const(COLOR_GREEN);
^^^^^^^^^^^^^^^^^^^^^^
Error 172: "curses.c", line 1409 # Undeclared variable 'COLOR_YELLOW'.
rb_curses_define_const(COLOR_YELLOW);
^^^^^^^^^^^^^^^^^^^^^^
Error 699: "curses.c", line 1409 # Error limit reached; halting compilation.
rb_curses_define_const(COLOR_YELLOW);
^^^^^^^^^^^^^^^^^^^^^^
make[1]: *** [curses.o] Error 2
make[1]: Leaving directory `/home/orenonamae/arc/ruby-1.8.0/ext/curses'
make: *** [all] Error 1


951 :名無しさん@お腹いっぱい。:03/08/06 10:32
>>949 curses.h が入ってないんと違うか?

952 :名無しさん@お腹いっぱい。:03/08/06 12:44
>>951
もしそうなら、 ext/curses をスキップするようになっているべきでは?

953 :名無しさん@お腹いっぱい。:03/08/06 14:34
>>949
これなんだっけ。ruby-coreかtalkで出てたのと同じやつじゃないかな。
ちと今見付からんのだけど、たしか修正方法も出てたような。
てぇか、直ってなかったんかい。

954 :名無しさん@お腹いっぱい。:03/08/06 14:53
"unkf" って何の略ですか?

955 :名無しさん@お腹いっぱい。:03/08/06 14:54
うんこふ。


956 :名無しさん@お腹いっぱい。:03/08/06 17:17
>>954
u - nkf では?

957 :名無しさん@お腹いっぱい。:03/08/07 00:55
universalと言う名のアメリカ式合理的文字セット符号化方式に対応したネットワーク漢字濾過装置

958 :名無しさん@お腹いっぱい。:03/08/07 01:53
nethack のアイテムみたいだな。

959 :949:03/08/07 01:57
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/5521
これですかね。でも1999年って。。。
パスを指定すればいいのかな。


960 :名無しさん@お腹いっぱい。:03/08/07 19:43
>>959
いや、もっと最近、1.8.0previewの話。
うろ覚えで悪いけど、_XOPEN_SOURCEが必要とかだったような気がする。

./configure CPPFLAGS=-D_XOPEN_SOURCE

でやってみて。

961 :名無しさん@お腹いっぱい。:03/08/08 09:11
[ruby-talk:78400]によると、CFLAGS="-Ae" か CFLAGS="-Aa -D_HPUX_SOURCE"
でいけるって言ってるみたいな気がする。


962 :949:03/08/08 18:12
>>960
> ./configure CPPFLAGS=-D_XOPEN_SOURCE
> でやってみて。
結果は同じでした。
でgoogleしてみて、CPPFLAGS=-D_XOPEN_SOURCE=500とかいるのかなと
思ってやってみたらこうなりました。うわーん。

cc +Z -D_XOPEN_SOURCE=500 -I. -I/home/orenonamae/arc/ruby-1.8.0 -I/home/orenonamae/a
rc/ruby-1.8.0 -I/home/orenonamae/arc/ruby-1.8.0/ext/curses -DHAVE_CURSES_H -DHAVE_
ISENDWIN -DHAVE_UNGETCH -DHAVE_BEEP -DHAVE_GETNSTR -DHAVE_WGETNSTR -DHAVE_DOUPDA
TE -DHAVE_FLASH -DHAVE_DELETELN -DHAVE_WDELETELN -DHAVE_KEYPAD -DHAVE_KEYNAME -D
HAVE_INIT_COLOR -c curses.c
Error 22: "curses.c", line 513 # Syntax error.
curses_resizeterm(VALUE obj, VALUE lines, VALUE columns)
^^^^^
Error 22: "curses.c", line 1202 # Syntax error.
window_resize(VALUE obj, VALUE lines, VALUE columns)
^^^^^
make[1]: *** [curses.o] Error 2
make[1]: Leaving directory `/home/orenonamae/arc/ruby-1.8.0/ext/curses'
make: *** [all] Error 1

>>961
>[ruby-talk:78400]によると、CFLAGS="-Ae" か CFLAGS="-Aa -D_HPUX_SOURCE"
>でいけるって言ってるみたいな気がする。
逆で必要ないって言ってるみたいな気がする。
http://www.ruby-lang.org/ja/install.cgi?cmd=view;name=HP-UX
にもHPUX11以降はいらないとかかいてあるので。


963 :949:03/08/08 18:25
あ、それと configure のオプションを変えながらいろいろやってて気づいたんですが、
ext/配下のMakefileがconfigureを実行しても再作成されないみたいですけど
そういうもんなんですか?

cc -D_XOPEN_SOURCE -DYYMAXDEPTH=300 main.o dmyext.o libruby-static.a -ldld -ld
l -lm -o miniruby
compiling Win32API
#なんたらかんたら
make[1]: Entering directory `/home/orenonamae/arc/ruby-1.8.0/ext/curses'
cc +Z -O0 -D_XOPEN_SOURCE=500 -I. -I/home/orenonamae/arc/ruby-1.8.0 -I/home/miyamu
#↑前のオプションのまま

964 :名無しさん@お腹いっぱい。:03/08/09 04:57
% uname -srvmpio
SunOS 5.8 Generic_108528-23 sun4u sparc SUNW,Ultra-4 Solaris
という環境で、ruby-1.8.0 をコンパイルすると、
./miniruby ./mkconfig.rb rbconfig.rb のところで、
./mkconfig.rb:48: stack level too deep (SystemStackError)
from ./mkconfig.rb:35:in `foreach'
from ./mkconfig.rb:35

というエラーで止まります。よろしくおながいします。

965 :名無しさん@お腹いっぱい。:03/08/09 06:43
>>964
とりあえず、スタックが小さすぎないか ulimit をチェック。
あと、使ってる cc とフラグを教えれ。

966 :名無しさん@お腹いっぱい。:03/08/09 11:08
Cygwin上でruby-1.8.0の make には成功したけど、
eruby の make が通らない。エラーメッセージ、
環境などの情報は今手元にないんで、のちほど。

967 :名無しさん@お腹いっぱい。:03/08/09 18:04
>>965
> >>964
> とりあえず、スタックが小さすぎないか ulimit をチェック。
> あと、使ってる cc とフラグを教えれ。

zsh% ulimit
unlimited

です.

% gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.3.1/specs
Configured with: /tmp/gcc-3.3.1/configure --disable-nls
Thread model: posix
gcc version 3.3.1

また,CFLAGS=-O2 です.

968 :名無しさん@お腹いっぱい。:03/08/09 18:13
>>967
> また,CFLAGS=-O2 です.

env CFLAGS=-O2 ./configure としていたのを, ./configure に変えてみました
が同じでした.


969 :名無しさん@お腹いっぱい。:03/08/09 22:57
生のるびきちさん、みたよー、みたよー。


970 :名無しさん@お腹いっぱい。:03/08/10 02:01
どこで?

971 :名無しさん@お腹いっぱい。:03/08/10 02:35
LLS か?

LLS レポート&るびきち画像きぼん

972 :名無しさん@お腹いっぱい。:03/08/10 13:41
こばしげ、こんどは安定版リリース後に互換性のない変更を始める。

- rb_define_method(rb_cBigDecimal, "prec", BigDecimal_prec, 0);
+ rb_define_method(rb_cBigDecimal, "precs", BigDecimal_prec, 0);

さらにBigDecimal#to_sでは以前にも増して、
既存のto_sのセマンティクス破壊にいそしんでいるご様子。

puts BigDecimal("3.14").to_s # => 0.314E1
puts BigDecimal("3.14").to_s("E") # => 0.314E1
puts BigDecimal("3.14").to_s("F") # => 3.14
puts BigDecimal("3.14").to_s("1F") # => 3.1 4

……forkキボンヌ。

973 :名無しさん@お腹いっぱい。:03/08/10 14:48
>>972
> puts BigDecimal("3.14").to_s("1F") # => 3.1 4

> 引数 n に正の整数が指定されたときは、少数点で分けられる左右部分を、それぞれ n 桁毎に空白で区切ります。
わけ分からん機能だ。

974 :名無しさん@お腹いっぱい。:03/08/10 14:48
>>971
いたか? 気づかなかったな。

975 :名無しさん@お腹いっぱい。:03/08/10 15:10
>>962
> Error 22: "curses.c", line 513 # Syntax error.
> curses_resizeterm(VALUE obj, VALUE lines, VALUE columns)
> ^^^^^
> Error 22: "curses.c", line 1202 # Syntax error.
> window_resize(VALUE obj, VALUE lines, VALUE columns)
> ^^^^^
linesが何か#defineされてたりする?

>>963
ごめん、そういうもん。
ruby -run -e rm 'ext/**/Makefile'

976 :名無しさん@お腹いっぱい。:03/08/10 15:14
>>964
それtalkなんかでもたまに報告があるようだけど。
デバッガから実行して再現できるなら、
stack_check()でbreakしてbacktraceきぼんぬ。

977 :名無しさん@お腹いっぱい。:03/08/10 17:30
いんさいだーって何?

978 :名無しさん@お腹いっぱい。:03/08/10 18:14
ゴッドサイダーなら知ってるけど?


979 :名無しさん@お腹いっぱい。:03/08/10 18:38
Rubyの中の人などいない!

980 :名無しさん@お腹いっぱい。:03/08/10 19:51
ダークカイザーなら知ってるけど?

981 :名無しさん@お腹いっぱい。:03/08/10 20:39
昔アスキーが出してたRPGのインサイダーズなら知ってるけど?

982 :名無しさん@お腹いっぱい。:03/08/10 20:44
昔三ッ矢が出してた飲料の三ッ矢サイダーなら知ってるけど?

983 :名無しさん@お腹いっぱい。:03/08/10 21:26
BigDecimalはやっぱり標準にするには早すぎたと思うよ…

984 :名無しさん@お腹いっぱい。:03/08/10 21:35
異議を唱えるのが遅すぎたね。
リリース間際でみんなアタフタしてて、つきあってられなかった。


985 :名無しさん@お腹いっぱい。:03/08/10 21:57
ていうよりも、ああいう品質のものに異議を唱える人がずっといなかった事・
いつのまにかimportされていた事自体が問題では。
(結局knu氏が決断したのだったよね)

986 :名無しさん@お腹いっぱい。:03/08/10 22:05
手を動かした奴の勝ち、ってこった。

987 :名無しさん@お腹いっぱい。:03/08/10 22:52
>>983
そうして標準ライブラリは貧弱なままになる
ライブラリは rough/ とか作らずにどんどん開発バージョンに
いれればいいと思うよ


988 :名無しさん@お腹いっぱい。:03/08/11 00:29
net の下を素人に優しくして欲すぃ。

989 :名無しさん@お腹いっぱい。:03/08/11 02:10
ものすげえ初歩的なことだと思いますが、なぜ以下の結果が
得られるのかわかりません。どなたか教えてください。

$ ruby -e 'p (2.0 / 3) ** 20'
0.6666666667
-e:1: undefined method `**' for nil (NameError)

なぜ(2.0 / 3)がnilと扱われてしまうのでしょうか。
ruby-1.6.8を使っています。

990 :名無しさん@お腹いっぱい。:03/08/11 02:15
>>989
(p(2.0 / 3)) ** 20
と見なされるから(1.6だと)。Kernel#pはnilを返す。
だから0.6666666667が先に出力されてる。

1.8だと p ((2.0 / 3) ** 20) と見なされる。

991 :名無しさん@お腹いっぱい。:03/08/11 02:18
>990
素早い回答、ありがとうございます。納得できました。


992 :名無しさん@お腹いっぱい。:03/08/11 02:20
次スレはRubyのFAQを語るスレッドで


993 :名無しさん@お腹いっぱい。:03/08/11 02:29
>>987
こんなとこ来てんじゃねーよ

994 :名無しさん@お腹いっぱい。:03/08/11 02:42
次スレ
rubyを語るスレッド 4
http://pc.2ch.net/test/read.cgi/unix/1060537252/

>>992
FAQを語りたきゃ勝手に語れ。

995 :名無しさん@お腹いっぱい。:03/08/11 04:16
>>994
>>989はFAQだろヴォケ、と遠回しに言ってるんだろ>>992は。わかれ。

996 :名無しさん@お腹いっぱい。:03/08/11 10:14
夏虫がいぱーい出てるなぁ!

997 :名無しさん@お腹いっぱい。:03/08/11 11:22
なかなか埋まらない。

998 :名無しさん@お腹いっぱい。:03/08/11 11:39
斉○って、うざい!

999 :名無しさん@お腹いっぱい。:03/08/11 11:42
だれかLLSレポートきぼーん。


1000 :名無しさん@お腹いっぱい。:03/08/11 11:43
1000

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

214 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)