rubyを語るスレッド 3

このエントリーをはてなブックマークに追加
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ゲットだーヨ
 ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧ ∧   ダーヨ!!
  (´ー` )   ̄∨ ̄ ̄
  \ <    ∧∧     /|      (´´
    \.\_(´ー` )__/|' /    (´⌒(´
     ⊂ _⊂ ___`つつ≡(´⌒;;;≡≡≡≡
              (´⌒(´⌒(´⌒;;
      ズザネ━━━━━━━━━━━━━━━ヨッ
どうせ立つと思ってたけどさ。

「啓蒙」とか書き加わってるからカチンとくるわけで。
>>3
最近は>>1で煽りを入れるのがunix板の流行らしいからね。
で、ツッコむと荒らし認定される
板違い。↓でやれ。

Ruby について Part 3
http://pc2.2ch.net/test/read.cgi/tech/1042004759/
そんな流行ネーヨ



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


----------切り取り線----------
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
>>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/
invoke ?
14名無しさん:03/02/22 19:36
invoke は Task のメソッド
>>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年か。
20bloom:03/02/25 09:37
↑広告氏ね
22名無しさん:03/02/26 02:44
標準ライブラリの MonitorMixin って、ひどく遅いようだがなんでだろ。
Mutex の20倍くらい遅い。 MonitorMixin::Accessible のアクセス関数が遅い
ような気がするが。
ベンチマーク/プロファイルきぼんぬ
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
>>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倍
(時間で)以内まで改善。
まともなDB本、なかなかでないね。
金光ショックが影響してるに違いない。
28名無しさん:03/02/27 01:39
>>26
> Thread.pass をコメントアウトしたら Mutex の 1.5倍
> (時間で)以内まで改善。

コメントアウトしなくても condition variable を使う場合は Mutex より
Monitor が速かったりするなぁ。なかなか微妙。
tai64n を扱うクラス/ライブラリってありますか?
簡単そうなんで、無くても自分で作れそうですが、既にあるならば使いたいなと。
30名無しさん:03/02/28 04:49
それとは関係ないがちょっと聞いてくれ。RubyでLispインタープリタを作った
ら、Procで引数1つだけの処理が妙にむずかしいんだよ。どうしたらいいんだ。
>>29
tai64nって知らなかった。
作ってみれば?

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

ありがとう。代入の場合と逆なのね。
postgreSQLとmod_rubyな解決法とか、
世間様ではまだまだマイナーなんでしょうか?
翔泳社あたりから参考書でないかねぇ。

この際、matzの連載でrubyとSQLの連携な話とかリクエストしてみるテスト。
「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であります
>35
英語書くの面倒だから。
fn = lambda {|r, *a| p r, a}
>>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>
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 の作者って宗教上の理由でコーヒーが飲めないって本当ですか?
ちがってたら、スマソ
>>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で僕が一番問題だと思うのは、
暗黙のレキシカル・スコープがそうであるように、
「驚き最小の原則」が人を迷わせるということだ。
問題は、ひとは誰の驚きで悲観するのか、ということ。
上級者は初心者とは違うことに驚くし、
小さなプログラムを大きく育てようとする人は、
最初から大きなプログラムを設計する人とは違うことに驚くのだ。

たとえば、なんでもオブジェクト扱いするのは、
「初心者にとっての驚き最小の原則」の侵害だと思う。
初心者にとっては、数字は数字だし、文字列は文字列だ。
コンピュータが扱う限りでは、
それらは当然オブジェクトなのだろうし、
もちろん、上級者は、これらをオブジェクト扱いするのを問題にさえしない。
けれど、いきなりオブジェクト指向を強いると、
加速中の初心者にとっては徐行帯になってしまう。
Perlのxが演算子なのは、めちゃ驚きだったが。
あんまり説得力がないよねえ。同様に配列は配列、ハッシュはハッシュ…となるわけだが、
結局 Perl, Python, VB, Javaなどは何がオブジェクトで何がオブジェクトでないかという
基準がみんなそれぞれ違うんだよね。文字列は文字列、という考え方が自明と考えている
時点でもうバイアスがかかってる。Perlで洗礼を受けた初心者から続々とold typeが量産
される図式が見える。。
Perl6のRFCとか黙示録を読んだけど、シンタクスシュガーを際限なく導入していく路線にはついていけないよ…。
>>52
ラリーは言語学者だから、
文字と数字が人間にとってプリミティブに扱える存在であると
何か確信があるんだろうね。
ラリーの言う初心者の驚きって、
rubyに最初にrubyに触れた時、その一瞬で終わるものだと思うが。
文字列が文字列としてのメソッドを持ってるってだけの話であって。

perlがもたらす驚きってそれどころの話じゃないしねぇ。
いつまでも変な記号が付きまとうし。
Perl は驚きで満ち溢れている。
ドロンジョ様(=のび太=コナン)は小原乃梨子。
とこんなところでツッコんでみるテスト。
もし、Rubyに厨なスクリプトが溢れてきたら、Rubyが(使いやすいという意味で)本当に優れているという事がわかる。
いってることは分かるけど、それはそれで烈しくいや〜ん。
60名無しさん@お腹いっぱい。:03/03/09 23:04
>>48

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

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

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

有る意味ハゲ同!

なんかrubyみたいで、オブジェクト試行でない言語ないですかねぇ???
でも、rubyは使いやすいので、
>>61
> なんかrubyみたいで、オブジェクト試行でない言語ないですかねぇ???
ruby のどういった機能が欲しいのでしょうか。
rubyって、オブジェクト指向由来の特徴しか思いつかんのだが。
>>63
Perl 由来の機能、変数名の prefix、ブロック付メソッド(旧名イテレータ)、
何かと議論になるレキシカルスコープと end
>>61
ちゅーか、オブジェクト指向意識せずに Perl っぽく使ってりゃええやん
漏れは Ruby 使い始めて 1年くらいは class 作ったこともなかった(恥)
>>65
ほら「恥」とか思っちゃうよね。俺もそうで、人にソース見せられないのが
つらい。別に Ruby が悪いわけではないが。
別に無理にOOっぽく書くこともない。
デカくなってきて整理したくなったらクラスやモジュールを使うと便利とでも覚えとけ。
この記事、分量は少ないが、
金光タンのデータベース本の内容を凌駕してると思うのだが。
http://www.atmarkit.co.jp/flinux/rensai/mysql07/mysql07a.html

MySQLとRubyとApacheで、かなり遊べそうだね。
>>68
負の方向に凌駕してるのかと思って期待して読んじゃったよ(w
>>69
なんだ、違うのか。読むのやめた。
私の場合、RubyでDBを扱うときにいつも問題になるのは
どうやってDBを抽象化してやるかって話になります

そういった議論を設計レベルから解説してくれる本があれば
ぜひとも読みたいですなー
72名無しさん@お腹いっぱい。:03/03/10 10:25
>62
lisp ?
リファレンスマニュアルをinfoに変換したい!
どうすればいいの?
漢字コードの異なるファイルを読み込んだら、その都度 $KCODE は設定しないといけないんでしょうか?
どう読み込むかによる。
>>71
MySQLライブラリとか、もっと抽象化して、
オブジェクトオブジェクトな仕様になってたら、確かに面白いかもしれんね。
queryメソッドとか、ちょっとナニっぽくない?
いや、あれはあれで行き着いた仕様なのはわかってるのだが。
それは拡張ライブラリの分担ではないと思われ。
78>>62:03/03/10 20:29
rubyの関数っていうのかなぁ?
chompとかARGFとか使いたいと思っています。

(とても便利)

でも、OOというのがどうも馴染まないんで。。。
離れたいのが本心です。
>>78
そういう言語を Ruby で実装してみるのは面白いかもね。
>>79
rubyなmoduleじゃだめ?
81名無しさん@お腹いっぱい。:03/03/10 23:31
>>80

どうしても、OOが馴染まんのです。
Perl か sed+awk でいいじゃん。
ラリーウォールさんの記事興味あります。
自分は一年くらいpythonをやっただけのプログラミング初学者ですけど、
やっぱりオブジェクト指向というものの良さがわからないままです。
rubyをやってる初学者の方はそのへんどうですか?

正規表現を学んだのをきっかけにperlに触れたのですけど、
pythonとは違ったルーズさがなんか気持いいんですよね。(pythonも好きだけど)
それでrubyにも興味がでてきて、
いろいろ意見を聞いて触ってみたいなあと思ってるのですが。
if foo
elsif hoge
end
と書くべきところを
if foo
else hoge
end
と書いて10分くらい悩んでた
irbで :- (Symbol) を入力しようとすると次の行に継続してしまうのは仕様ですか?
ところで Ruby の ReadLine って rl_line_buffer みたいなのって使える?
>>83
オブジェクトがオブジェクトののメソッドを持ってる気持ちよさを感じれ。
>>87
なかなかうまく言った
>>88
タイプミスってるけどな(w

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

少なくとも、rubyのオブジェクト指向の難しさって、
初心者がつまずくような初歩の段階では発現しないと思うのだがなぁ。
>>76
dbmとかpstore風にMySQLを用いるライブラリとか?
SQLは情報隠蔽したりして。
うーん、あれば楽しいかも。
91名無しさん@お腹いっぱい。:03/03/12 23:26
>>89

いや、逆でしょう?

文字列があったとして、その長さを数えるのは文字列自身ではないっていうのが
素人の考えでもあり、従来のプログラムのかんがえでもある。
92anti-oo:03/03/12 23:27
あるいみで、rubyの普及を一番妨げているのが、このOOだったりする罠〜
>>91
いや、人によっても違うんだろうけど
私が教えている人達には受け入れやすい考え方のようだ
昔 Ruby以外でやっていた時に比べ
格段に学習効率が良くなってる。

# まあ 100人x10年位の集団だし当てにはならんけどね。
>>91
「従来のプログラムのかんがえ」ではあるかも知れんが、
「素人の考え」かどうかは検証が必要。
文字列が自分自身の長さを数える必要ないだろ。
自分自身のことだから *知っていて当たり前* だと思うが。
>>90
SQL隠蔽というとDBI::Classみたいな奴?
http://www.moonwolf.com/~moonwolf/tdiary/20030303.html
人がいるとするでしょ。
その人の名前を知りたいと思ったら、そいつに「あなたの名前は何ですか?」って聞くのは自然でしょ
ひもがあるとするでしょ。
(ry
おらっ!
Matz出て来いっ!
rubyごときにつまずいてる奴は知能が低い。
OO の概念的なモデルであるメッセージパッシングと、
言語の構文の対応がうまく言ってないということかね。

matz.name は、
matz に対して名前を尋ねるというメッセージを送り、
matz が名前を教えるという振る舞いで応対する、
という2段階が含まれている。
>>97
その手のメタファって OOP を学ぶ上ではかえって足枷になったりせんかね?
>>101
matz.nameが
「matzに名前を尋ね、matzが答える」っていう抽象的なメソッド、
とも解釈できると思うが。
「matzに名前を尋ねたが、kanemitsuが答えてしまった」だったりしたら
メソッドとしてナンセンスだし。
104名無しさん@お腹いっぱい。:03/03/13 05:03
rubyだけが出来るとかrubyが他に比べて得意とかの用途ってなにがある?
>>103
> 「matzに名前を尋ねたが、kanemitsuが答えてしまった」
106山崎渉:03/03/13 16:27
(^^)
>>104
LightWeightLanguageなところとか。
>>96
すごくイイかも
thx!
109名無しさん@お腹いっぱい。:03/03/13 23:17
たとえば、冷蔵庫のサイズを計るとする。

冷蔵庫.size

がその書き方だとおもうが、どうみても不自然
>>109
「不自然」かどうかは主観的・相対的なものなのでは?

漏れにはどうみてもとても自然に思えるよ。
size(冷蔵庫) の方が、何も知らない人にとってはわかりやすい。

というのは本当に間違いなのかなぁ。。
112110:03/03/13 23:23
つまり、「どうみても」っていう部分を合理的・論理的に説明できる?っていう話。
元々、人間の思考はどっちのパターン(方向?)に近いのか。
冷蔵庫のサイズを計ると言うと不自然かもね。
人間.計れ(冷蔵庫)
冷蔵庫の属性としてのサイズはってことだと。
冷蔵庫.高さ
1. 対象が動作を知っている。
2. 動作は人間がするもの。人間が何かをすれば、対象に何かが起こる。

2は手続き指向だけど、人間は本来、この考え方で動いてるような。
もしそうなら、発想の転換、に違和感を感じる人が出ても仕方がない。(?)
>>115
何が論点になってきてるのかいまいちわからんのだが、
その発想の転換ができないのであれば、
無理して Ruby 使わず Perl (など) を使ってればいいじゃん、
ってことでいいんじゃないの?
117名無しさん@お腹いっぱい。:03/03/13 23:46
オブジェクト指向が自然な指向とは必ずしも言えんわなぁ?

とはいえ、良く引合に出される自動販売機なんかはまさに
ぴったり来る例かも。
冷蔵庫のサイズなんてのは人間が存在してもしなくても
冷蔵庫自体が内在している性質なんだから 冷蔵庫.size ってのは自分には自然に感じる。
119名無しさん@お腹いっぱい。:03/03/13 23:54
>>118

いや、そうではなくて、そのサイズを測定する機能がオブジェクト側にある
という点が着眼点になっていると思われ
120名無しさん:03/03/14 00:39
冷蔵庫のサイズは「冷蔵庫のサイズ」と書くのが自然だよね。
Ruby では「の」を「.」で書くから不自然なんだよ。きっと。
hage ha String no new("hoge")
p hage no size

テニオハruby
>>121
ネタにレスするのもなんだが、、、
そういう風に書くとオブジェクト指向を誤解する人間が増えるから良くないよ。
オブジェクトは現実世界のモノそのものではない。
「それいけノンタック」 でノンタックが
「おでこのメガネでデコデコデコリーン」 した世界が近い。
>>123
なんだそりゃ?おもしろそうなので詳しくぷりーず。
125124:03/03/14 13:45
結局、自分でぐぐってみた。なるほど。
あんまり議論の内容をよく知らないんですけど、
レキシカルスコープって不自然なんですか?
127名無しさん@お腹いっぱい。:03/03/14 19:23
まぁ、オブジェクト指向というのは便利な半面
しっくりとこない部分もあるということだ罠〜。

なんでもかんでもOOというのは、有る意味アフォかも
>>127
しっくりこないのは君がアフォだからなのだが。
漏れはVBAから入ったんだが仲間に入れてもらえますか?
お舞い羅、考えすぎだよ
131名無しさん@お腹いっぱい。:03/03/14 22:59
rubyはストレス感じる
↑ ./-JP の記事を読んできた人
今頃スラドのインタビュー読んだんだけどさ、
糞大江の「あいまいな日本の私」という言葉を引用してて
ちょっとだけ萎えた。まぁ深い意味はないんだろうけれど。
あそこは、ちょっとだけニヤッ、として流すところでしょう。
「あいまいな日本の私」は大江オリジナルではないわけだが。。。
最近の若い人は知らなくて当り前か。
毒にも薬にもならんインタビューだな、と批判してみる。
もっと毒づいてくれればスラドとしても面白かっただが。
俺としては金光特集きぼんぬ。
どもっ!
139名無しさん@お腹いっぱい。:03/03/15 21:07
ruby はハッシュと配列が別扱いなんだねぇ。。。
ちょっと萎え
そりゃ配列とハッシュは別物だろう…って一体何を期待してたんだ?
>>139
漏れは PHP とかの方が萎えなのだが、
なんでハッシュと配列が一緒くたのほうが良いの?
>>139
awk とかは同じ扱いだよね。

ハッシュは実装方法なので「連想配列と配列」っていったほうが適当かも。
>139
ハッシュだけ使ってれば良いのでは?
Javascript も同じ扱いだね。
自分でそういうクラス作ればいいんじゃない。
>139
遅いじゃん。
Array#assoc あるし
じゃあ、あいだを取って全部リストで
rubyをメジャーにするには
有名なゲーム作ったプログラマが
「このゲームはrubyが無ければ実現
不可能でした」と話せばイイ!と。
そんなんでメジャーになった言語なんてあるのか?
perlが無ければ情報社会の普及はありえませんでした。
rubyが無ければOOPSの布教はありえませんでした。
Object Oriented Play Station?
ゲームの種類にもよるだろうけど、
ソースの隠蔽ができないとちょっとアレだと思うが。

ウィザードリィみたいなゲームをコンソールで作るのは、
いい腕試し暇つぶしになるかモナ。
っつーかrubyは今でもメジャーでしょ。超メジャーじゃないだけで。
>>153
パズルとかアクションとかシミュレーションとか、
ネタバレ関係ないようなゲームならソース見えても全然問題ないよね。
156名無しさん@お腹いっぱい。:03/03/18 22:25
連想配列つかえる言語って、ハッシュと配列を区別無く使えるものが
多いのでちょっとビツクリ
>>156
多いんだ。初めて知ったよ。
awk/perl/ruby しか知らないからなあ。
この3つだと awk だけになって少数派になってしまう。
rubyでエロゲームを書け。
159名無しさん@お腹いっぱい。:03/03/19 01:01
>>157

ruby は perl から派生してるからだろ(w
luaもそうじゃないカナ
ツカッタコトナイケド
もしよろしければ質問に答えてください。

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

補完機能を働かせ、ドキュメントを参照するにはどうしたら良いでしょうか。
162名無しさん@お腹いっぱい。:03/03/19 22:16
ruby.help!!

とかか?(w
apache、erubyな環境で、<%print cgi.param%>とかできるんだねぇ。
気づかなかった。
っていうかこれって(rubyなcgiをうじうじ書くより)革命的に安楽に感じるのは、俺だけ?
<%= cgi.param%>
erubyのPHPもどきがなんとなく気に入らないから
CGI.rb + html-template使ってる
eRuby って Apache2 だと REMOTE_USER とかのメタ変数が
ことごとく取得できない問題とか無かったっけ?
apache2は必要なのか?と書いてみる
むしろ REMOTE_USER は必要なのかと
>>167
それもそうでつね。

>>168
それが原因で Apache2 で影舞が動かなかったとかなんとかいう話があったので。
170名無しさん@お腹いっぱい。:03/03/20 23:07
まぁ、遅くても良い用途にはいいかもなぁ?(w
171ヽ(´ー`)ノ:03/03/20 23:16
>>170
高負荷がかかるならハイパフォーマンスって聞いたんだけど、デマ?
172名無しさん@お腹いっぱい。:03/03/21 00:30
んなわけね〜だろ〜?(w
apache2の新機能
http://itb-tech.itboost.co.jp/inst/apache2_new_features.php

で、実際のところ、apache2+eruby+mod_rubyとかの使用感はどうなのよ?
174名無しさん@お腹いっぱい。:03/03/21 18:13
rubyって素人っぽくて洗練されてないところがいいのかなぁ?(w
>>174
それってperlの事だろ。
影舞イイ!
良いんだろうけど、使い道ないのが悲しい。
178名無しさん@お腹いっぱい。:03/03/22 21:55
>>175

有る意味perlは暗号めいててそれこそ「玄人」って感じ(w
このスレでは特徴的な語尾だな(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
>>181
rubyは演算子の順繰り規則がおかしい
>181 [ ] の中には expr はおけない
a or b は expr で (a or b) は arg
ruby sample/exyacc.rb parse.y
185名無しさん@お腹いっぱい。:03/03/23 09:35
あと、配列とハッシュは別
rubyの今の構文規則って無茶苦茶だよね。
perlと大して変わらん。
と思うのは言語理論を学んだ事の無い香具師がいいそうなこと。

# それほど立派ではないけど perl とは善し悪しは別として
# 大きく違う。
188ヽ(´ー`)ノ:03/03/23 11:26
>>186
どこら辺がどう無茶苦茶なのか説明してほしい。Ruby 勉強しよーかなぁと
思ってこのスレずっと読んでるので。
>>188
煽ってるだけなので真に受けないように
190名無しさん:03/03/23 12:23
>>184
> >181 [ ] の中には expr はおけない
> a or b は expr で (a or b) は arg
> ruby sample/exyacc.rb parse.y

いやもちろんソースは見たんだけど、なぜそうなっているのかがわからなかっ
たので。
>>190
「右辺」「引数」「配列要素」を一致させておくと、

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

と同じ規則で or が配列要素からは除外されると説明できる。
192名無しさん@お腹いっぱい。:03/03/23 17:03
自分の感想では、rubyはコアと呼ばれる部分が曖昧な上
いろんな機能をかなりなペースで拡張しつづけているので、
それぞれの機能を書き方がかな〜りいい加減、というか思い付
きっていう感じで付け加えているような気がしてならない。
>>192
あははっ!ホントその通りだね!あははっ!
(´-`).。oO(楽しそうだなぁ……)
(´-`).。oO(春だからねぇ……)
(´-`).。oO(春厨がことごとく花粉症にかかりますように……)
(´-`).。oO(漏れも1つくらい言語覚えたいなぁ〜)
(´-`).。oO(nullpo)
(´-`).。oO(nil)
(´-`).。oO(ガッ>>198)
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.
ぬるぽぬるぽぬるぽぬるぽぬるぬぬるぽぬぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬぬるぽぬるぬる
ぬぬるぬるぽぬぬるぬぬぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬぬるぬるぬぬるぬぬるぽ
ぬるぬるぽぬるぽぬぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぬぬるぽぬぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬぬるぽぬるぬるぬぬるぬるぽぬぬるぬぬぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬぬるぬるぬぬるぬ
ぬるぽぬるぽぬるぽぬるぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぬるぽぬるぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぬるぽぬるぽぬぬるぽぬぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぬぬぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬぬるぬるぬぬるぬぬるぽぬるぽぬるぽぬるぽぬるぽぬるぬるぽぬ
ぬるぽぬぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽ
ぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぬるぽ
ぬるぽぬぬるぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぽぬるぬるぽぬる
ぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぽぬるぬるぬるぬる
ぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぬるぽぬるぽぬぬるぽ
ぬるぽぬるぬるぽ
春まっさかりですな。
REXML の XPath ってどう?
まともに使えるのか気になるんだけど…。
誰かruby+mysql本書いてみなよ。
ちょっとは売れるぜ。
postgresqlなら…
>>205
誰が書いてもあれよりはマシな本になるだろうな。
>>207
そんなにヒドかったのか?
注文しようかな、と思ってたんだが…。
>>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 とかしだすと、
なにがなにやらわからなくなりました。
RubyHackingGuide 片手に parse.y 読むしかない。
>>211
リファレンスマニュアルの「組込み関数」の冒頭を見ましょう。
p は Kernel モジュールのモジュール関数なわけですが、
Kernel モジュールのメソッドはどこからでも関数形式で呼べるので、それを踏まえて、
↓これらはみな同じと考えればわかるかな?

p a
p(a)
Kernel.p(a)
>>211
=はメソッドではない。
代入は、メソッドコールとは別の文法要素。
オライリーのMySQL盆、149頁、、、
>まだCGIプログラムにどの言語を使うか決めかねている読者には、
>Rubyを検討されることもお勧めする。

と書きつつ、この本にはRubyスクリプトがちっとも出てこない罠。
金光のサイト、あれはいかがなものか?
217名無しさん@お腹いっぱい。:03/03/27 19:56
>>211
まぁ、思い付きの集大成みたいなものだから(以下略
>>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
あと、演算子の定義って話を読んで、
疑問は解消されました。


>>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
>>222
まずは、リファレンスマニュアルの「演算子式」をじっくり読みましょう。
>>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
FreeBSD5.0で、perlが/usr/local/binに降格されてるのはperl滅亡の前兆。
いつのネタだよ
rubyをマスターしようという目的のわたし、1.8.0p2にしちゃおうか迷い中……
232ぼん:03/03/29 23:39
http://www.bunbun.ne.jp/~tk0608/
ロンブーの温泉カミングアウト未放送 コイケエイコはみ出てます。。
>>231
よろしいんじゃないでしょうか。

1.8.0 の make が通らないマイナー OS の悲しさよ・・・
というわけで、しゃりしゃりとbuild中 > 1.8.0-preview2
235名無しさん@お腹いっぱい。:03/03/30 02:20
でもさ、UNIXの伝統からしてrubyよりもperlだろ。

rubyなんてふきゅうするかな。
まず最初に、*BSDにrubyを標準で載せることを訴えていくべだと思うよ。
訴えていかなくても良い物は自然と普及していくものです。
>>236
はいはい、お花畑でおねんねしてなさい。
>>235
perlをrubyに置き換えたLinuxディストロってないのかな。

にしても、perlがUNIXの伝統ね……ま、最近の人からはそう見えるのかもね。
>>238
別に Perl を入れずに Ruby を入れればイイんじゃないの?
240名無しさん@お腹いっぱい。:03/03/30 02:48
>>238
俺から見ればそうだよ。
標準でBSDに載ってるでしょ。
>>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な話題ってありますか?
242236:03/03/30 03:11
>>237
漏れ、何か変なこと言いましたか?
>>240
ぼくは、Perlってのがすげえぜ、と友だち連中にプッシュしてた世代なのだが、
年寄り連中に顰蹙買ってた。「UNIXマインドの対極にあるPerlでUNIXを穢すな!」
ってね。
>>238
それがまずいので外されつつあるのだが。。。
>>244
「それ」とは?
246名無しさん@お腹いっぱい。:03/03/30 06:15
>>244>>240 へのレスだったに三円。
そうやって話をぼかして自分の間違いを正当化するんだね。
そんなことより、Lokiの移植まだ〜
全部はむりぽだったら、Loki::AssocVectorだけで良いから速く移植してよ
つーか、Rubyのfind糞遅すぎ

なんとかしろや ボケども
>>238
ももんがりなっくす、とか。
>>248
swig でも使って自分でやれば。
251235:03/03/30 14:51
でも、せっかく*BSDに標準でperlが載っているし、わざわざrubyを外から持ってきて
make installしてまでして使うメリットは何よ。

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

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

viが無くならないのと一緒だよ。現に俺は、nvi使ってるしね。
FreeBSD の portsupgrade って ruby で書かれてなかったっけ。

標準ではないだろう。
>>251
あなたはマジョリティーだとかや標準だとかいうだけで
言語を選ぶんですか?
255名無しさん@お腹いっぱい。:03/03/30 16:43
選ぶのは、思い付きかな?
仕様といっしょで(w
>>251
問1
perlが標準で搭載されている*BSD、標準で搭載されていない*BSDを列挙せよ。
また、rubyが標準で搭載されている*BSD、標準で搭載されていない*BSDを列挙せよ。

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

>251
Rubyをわざわざ使うメリットはない
そういえば、なんでruby使い始めたんだっけかなぁ。
>>256
とりあえず、perlもrubyも FreeBSD では標準じゃなく、MacOS X では標準
だね。
260名無しさん@お腹いっぱい。:03/03/30 20:18
osxと仲がいいなんて、○○丸出し!(ww
261(* ̄3 ̄)y─┛ ◆8g66hmRyek :03/03/30 20:23
262名無しさん@お腹いっぱい。:03/03/30 20:30
OpenBSDでは、perl5.8が標準だよな。
263名無しさん@お腹いっぱい。:03/03/30 20:39
いっそうのこと、perlで書かれてる部分をCに書きなおせば良いジャン。
そうすれば、perlを標準でいれる必要無し。
Perlを排除したFreeBSD5系列では、Perlで書かれていた
システムスクリプトはどうなったの? shスクリプトになった?
>>264
http://www.jp.freebsd.org/www.FreeBSD.org/ja/releases/5.0R/relnotes-i386.html
>ベースシステムの Perl 依存性を減らすため、 多くのユーティリティが
>シェルスクリプトや C プログラムで書き直されました
>(書き直されたユーティリティは、リリースノート中に記載されています)。
>>265
なるほど、見てみると、C言語で書き直したのが多いようですね。
「いっそうのこと」
いっそ【一層】(副)〔「いっそう」の転〕
perl馬鹿っているよな。
perl は馬でも鹿でもない!!!
271名無しさん@お腹いっぱい。:03/03/31 00:26
rubyはいろいろと本かったりしてみたが、作りというか思想が雑すぎてチトやり切れん部分も正直ある。
>>271 どこらへんでしょう?
>>271
がんばれ。
>>271
なら Ruby やめとけ
>271は何か他の言語と混同しているのではないだろうか。
>>271
ruby本に雑なのが多い、っていう感想では、同意。
使えるruby本って2〜3冊くらいのような気がする。
リファレンスマニュアルとgoogle先生が大半の解決法を教えてくれるし。
そういう意味でも金光タンのピエロっぷりは痛々しい。
277名無しさん:03/03/31 20:49
ディアゴスティーニと契約して月刊Ruby256シリーズを出して欲しい。
>>277
256ヵ月もネタが続かないかも
rubyを始めるにあたって、
『プログラミングRuby』
『Rubyアプリケーションプログラミング』
の2冊を入手したわたしです。
にしても、拡張ライブラリのドキュメントをもちっと
システマティックにあつかえるフレームワークはない
ものか……rubydocキボウ……

あとなんだっけ、ほれ、クラスビューアーだっけ?
そういうアプリケーションはないもんかと思うことしきり。
281名無しさん@お腹いっぱい。:03/03/31 22:11
>>276
金光タンって言葉よく出て来るけど何ですか?
キチガイ?
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か何かを使うようにかいてあるけど
標準で、きちんと動作するようにして欲しいのですが。。

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

ほかにも、数字の扱いで、マニュアルに書いてない落し穴ってありますか
「きちんと動作」してるじゃん。嫌なら Rational 使えや。
>>284
なるほど、C とかの経験のあるひとには、
リファレンスマニュアルの Float の精度に関する説明で十分だと思うけど、
そうでないひとにはピンとこないのかもね。
「数字の扱い」
数値の扱い、ね。
>>284
数値の多少を問わず、オラオラッと扱えるruby。
matzは数学に距離を置いている人だし、開発の初期段階の展開によっては、、、
ひょっとしたら「あったかもしれない実装」だと思うのだが、、、いまさらっぽ。
まぁ外部ライブラリで問題が解決できるなら、それで解決するのがruby的と思われ。
逆を言えば、外部ライブラリを使いたくない理由ってあるのかね?
>>289
やっぱ、「誰にとって『驚き最小』か?」って問題のような気がする。
現状の Ruby は、UNIX や C の常識が身に付いてるひとには驚き最小。
291284:03/04/01 01:17
結局、なぜ一致しないのか、よくわかりません。
C言語でもなんでもいいので、上の様になった理由がわかるようなページってないですか?
もっと基本を勉強しろ。
293名無しさん:03/04/01 01:30
0.1を2進数であらわすには無限の桁数が必要。今あるコンピュータは
有限のメモリしかないのでどこかで切り捨てないといけない。


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

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

それいぜんに、たとえば、2進数で10進数の0.2ってどう表すんでしょうか?
0.01でしょうか? でも、それじゃあ、切り捨てるほどの桁数じゃないですね。
難しく考えすぎ。
>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ってどう表すんでしょうか?

これが分かればこのナゾは原理的なレベルで解ける。レッツ グーグル!
(てか、俺この理屈忘れちゃったので説明できまっしぇんスマ)
ruby 云々以前の話だよなあ。
299284: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

です。

もうちょっと、ぐ具ってみます。
>>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 がないぞ!!(笑
302284:03/04/01 02:55
>>300
なるほど、2進数では小数第1位が2^-1 2位が2^-2... ってことですね。

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

わからないので、小数の計算がでてきたら、Rational使うことにします。
>>302
xが有理数のとき
xが2進で有限小数ならばxは10進で有限小数
xが10進で循環小数ならばxは2進で循環小数
逆はいずれも不成立。Rational(1,10)はどちらの反例でもある。
つうか、いまは有理数が循環小数で書けることの証明って高校でやらないの?
304284:03/04/01 03:27
夜おそくまですみませんでした。
みなさん、ありがとうございました。
305284: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
>>305
C でも同じでしょ。
10 進数で循環小数になる数も
別の進数で循環しないこともあるよ。
例えば 1/3 は 10 進では 0.3333... だけど、
3 進数では 0.1 になる。
308284: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と表示されるんでしょうか?
単純な数学の問題だな。
最近は高校でn進数のこととか教えないのかな?
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
どれが便利かは状況に依存するからベストなフォーマットはないのよ
311284:03/04/01 04:17
>>310
わかりました。
つまり、Rubyは、標準の設定では小数点以下15桁くらい?までを
表示するようになってて、さらに、最後に0が続くと0は表示しない、
みたいな設定になってるわけですね。
それで、0.3と表示されてるわけですね。

どうもありがとうございました。
>>311
そういうことが知りたいのならソースみればいいじゃん
numeric.c の flo_to_s()
>>312
そういうときドキュメントでなくてソースを見なくてはいけないというのはいかがなものか、
>>284 は言いたいのだろう。
>>313
もっともな意見ではあるが、言葉で説明するには複雑過ぎる気もする
ただ、これだけ抽象的な言語なんだから、
分数/複素数くらいまでネイティヴでサポートしてよというのも
ある意味同意できる。
ある意味というかさっさとサポートして欲しい
>>316
まあ、良い名前が見つからない限りサポートしないけどね。
>>315
それを期待しない人間にとっては意図しない結果になる。
そういう動作をして欲しい香具師は require 'mathn' でもしとけってこった。
分数の計算の仕方忘れちゃった
0.1 は 1/10
0.2 は 1/5
1/10 + 1/5 は 3/10
でいいんだっけ。
整数も混ざる場合、どういう書き方がいいんだろう?
1.3なら
13/10ですか?
1+3/10かな?
分数使える言語ってなんかあったっけ。
>>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
$
>>319
漏れは xyzzy で割り算しようとしてびっくりしたことがある。
>319
> 分数使える言語ってなんかあったっけ。

scheme は有理数を扱える (実装もある)
Common Lisp から来てるんだと思うけど
324321:03/04/01 13:56
>>323
ありゃ、そうなのか。 Emacs Lisp の方が邪道 (ってほどどもないか) なのかな。
ruby-list だけど、
Kanbe 氏は何でエイプリルフールネタにマジレスしてるのかな…
それとも、あれはエイプリルフールネタじゃないの?
>>325
あれは Kambe 氏のネタなわけだが。
AhSKI出版局とか答えて欲しかった
>>326
あ、そういうことか。早とちりした……。
329memo: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
>>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

すげぇ。どうやってんだ。
分子と分母とわけて計算して
通分すれば簡単に実装できるよ。
つうぶん
なんて久々に聞いた
>>331
1.8だとitos(n,b)はn.to_s(b)でできる。ついでに正式採用きぼん。
Ming の池上さんのサイトはどこいったんですか?
>>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
Ruby使いはendの数どうやって数えてるの?
>>338
読むときはインデントかな
>338
数える必要性を感じている人は少ないと思う。
多くの場合、ソースの字下げで、読めばわかるとか。

数えるとすれば
puts hoge.scan(/.*?end.*?/).size
ええっと、違いますか???
まじめにやるなら構文解析しないとだめです。

…けど数える必要ってあるの?
endを数えるって対応をとるってことなんじゃないの
irbとppを使ったindentきぼん
end の数など lisp の ) に比べれば
物の数ではない。
>>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) #-> 禿しく遅い
super endキボンヌ
>>346
スーパーカッコと違って使いにくそう
スーパーカッコもいまいち使い勝手悪かった
[BUG] unknown node type 0
と出ました。
プログラムの意味にまったく影響しない空行1行を加えたら発生しなくなりました。
これ何?
バージョンは ruby 1.8.0 (2003-03-03) [i386-cygwin]
>>348
ホームページからバグレポートに送るべし
351346:03/04/03 01:25
>>347
すみません。lispは本の中でしか知りません。
end/閉じカッコは、emacsのruby-modeに任せています。

keyword/doで開いたのか、{で開いたのか覚えてないといけないのが、アレ。
>>348
再現性無いとどうしようもないから、詳細も忘れずに
>>351
1行で収まる自信のないときは do-end を使うようにしてる
>>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
>>349
2003-03-03っていうと、これかもね。

Thu Mar 20 10:45:29 2003 Tanaka Akira <[email protected]>

    * eval.c (bmcall): add volatile to avoid GC problem.
356346:03/04/03 12:21
>>353
まねすることにします。
>353
ほかに「俺はこういうポリシーで使い分けてる」っていう実例があればきぼんぬ。
むしろruby-mode.elでヒアドキュメントがインデントを壊さない方法を知りたい
def foo
  print(<<-EOS)
hoge
EOS
      end

こんな風にならない?
本当だ。
オレはヒアドキュメントの時は () 付けないんで気付かなかった。

def foo
print <<-EOS
hoge
EOS
end

他にもヒアドキュメント中に構文要素が入るとそのあとめんどう見てくれないとかね
def foo
  print <<-EOS
  rand() returns a random number lie in the interval [0.0,1.0).
ここらへんは invarid nest
ruby-mode.el の最新版で、

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

と書くと、その次のブロックのインデントがおかしくなりませんか?
do だと異常はありません。
確かに。次のでも崩れる
foo(n){|i|
     ■ここに来る
s.scan(%r|hoge|).each do |x|
の色付けが変
366名無しさん@お腹いっぱい。:03/04/05 19:52
まぁ、もとの言語仕様も変なので、あまりごちゃごちゃいわんでいいのでは?
通りがかりの戯言だが、なんで直そうという話にならんの?あほ?
言い出しっぺの>>367がパッチ出すべきだと思うがどうよ。
通りがかりに作ってもらおうってのはどういう了見だよ(w
>365
ruby使いはスキル無いから無理でつ
( ´_ゝ`)プッ
372名無しさん@お腹いっぱい。:03/04/06 19:35
どうでもいいけど、なんで糞擦れ化するんだよ!
>>363-367
修正中。いや前から分かってはいたんだけど。
>>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/
>>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"]]
$
ところで、これって何のキャラよ?
ttp://www.yoshidam.net/diary/200304.html#07_t1_1
テネレッツァ?
ソースからコンパイルすると昼寝が出来ますね。
深夜労働乙(W >>383
自動で書いてるとは思えんのだが、よくやるなこんな時間まで。
387381,384:03/04/14 14:24
ttp://www.yoshidam.net/diary/200304.html#13_t1_3

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

うまいと思います。rbcccda使ってまつ。
388387:03/04/14 18:55
> rbcccda使ってまつ。
rbcccda用のマスコットデータってことね。たびたび失礼。
なんで近頃の-talkは厨な質問ばっかりなんでしょうか?
Python にすべきか Ruby にすべきか悩む。
>>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
いちいち人の事に突っ込みを入れる暇があったら(略
>> xmlrpc4r
Ruby > 1.6 なんだから String#match なんか使うなよな・・・
つーか、 XMLRPC::ModRubyServer って動く?
398名無しさん@お腹いっぱい。:03/04/19 10:47
rubyはなぜこんなに遅いのかなぁ?やはりオブジェクト指向の副産物ですか?
実用性を犠牲にしたからです。
>>398
今更そんな煽りに乗る香具師はそうそういないわけだが
401名無しさん@お腹いっぱい。:03/04/19 23:47
>>400
煽りではなく単なる事実に基づく乾燥
是非 >>398>>401 の書く糞スクリプトを見てみたいわけだが。
403山崎渉:03/04/20 05:46
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
>>345
[ruby-talk:69781]にもFloat#to_rationalがポストされてる。
345のはIEEE754を前提にしてるのがイヤだな。

いや、むしろIEEE754フォーマットのpack/unpackをサポートしたほうがいいのかな。
>>404
ん?サポートって例えばどういうの?
サポートっつーか、EeGgではIEEE754を使う。と明示しちゃうとかさ。
IEEE754というのはプログラミング環境に関する規格なので、
使う使わないというよりRubyがIEEE754に準拠してるかしてないか
というたぐいのものかと。
またIEEE754はビットマップのレイアウトを指定しないので
EeGgがIEEE754を使うわけでもない。
ともかくなんか適当な文言を考えて明言してほしいという点でまったく同意。
配列の各要素に 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 を使い始めたばかりで
どうしてもわかりませんでした。
教えて下さい。
>>408 map
410408:03/04/26 03:42
>>409ありがとうございます。手元のマニュアル(ruby 本)にのってなかったので助かりました。今気づいたんですが、filter というのがruby 本にあって、これを使ってみたら collect を使えといわれました。もう ruby 本は古くなってるのかな?
411408:03/04/26 03:43
うっ, navi2ch でカキコできなかったんで
w3m でやったら改行が。すみません。
>>410
ruby 本といってもいろいろあるわけだが。

と突っ込みたいところだけど、仕様は変わったりするから、
オンラインドキュメントを参照するようにした方がいいね。
みなさんは map と collect って使い分けてますか?
>>413
collectしか使わない。漏れにとってはあれはmapではないから。
ruby reference manual の info 版、新しいのないかな。

# perl の info も古くなってきてるなあ。
# info はもう古いのだろうか。emacs 使う人なら瞬時に出せて
# 検索もできて結構便利なんだけどなあ。
>>415
rd2info ってあったんじゃない?
rd2texiのことかな。むかしlistに出てたのはずっと更新されてないと思うよ。
>>414
どんなのが写像なの?
map とは写像そのものであって、写像後の値のことではない
ということじゃないの?
lisper なんじゃないの?
421414:03/04/29 02:40
>>418
知らん。

>>419
そゆことです。

>>420
lispは得意じゃないです。
>>421
とすると、map よりも collect の方が適切な名前だ、という見解ですか?
よく分からん拘りだな。この場合の map って動詞なんじゃないの?
ちなみに haskell だって map だよ。
424414:03/04/29 03:02
>>422
いいえ。
漏れの勝手な見解です。誰に押し付ける気もありません。

>>423
ふーん。そうなの。
スレ違いかもしれないけれど、lispの束縛変数って言うのがどういうものか
良くわかりません。
誰かrubyしか知らない人にもわかりやすく教えてください。
すると lisp の map は適切な名ですか?

ところで mapcar って何の略?
map current address register
で、414以外は413の質問に誰も答えてないわけだが。
頭が悪くてcollectかcorrectか覚えれないので、map使います。
>>413 >>428
mapしか使わないよ。
漏れはsmalltalkerじゃないからcollectとinjectは意味がよく分からないが、
injectはaliasがないから仕方がない。
collect はどうも意味がしっくりこないので分かりやすい map を使ってる
>>425
lispの仕様に束縛変数という用語があるかどうかは知らないが、
次の例を考える x = 1; y = 2; w = lambda{|x,z| x+y+z};
このうち、
x = 1; # 自由
y = 2; # 自由
w = # 自由
lambda{|x, # 束縛
z| # 束縛
x+ # 束縛
y+ # 自由
z # 束縛
};
束縛と自由は変数毎ではなくその出現毎に定義される。
lispでは (defun foo (x y) ...) や (lambda (x y) ...) の x と y は
defun や lambda で束縛されている。
注目するブロック内での代入(束縛)が外の影響を受けない変数は
そのブロックで束縛されている。そうでないものはそのブロックで自由。
だから大雑把には局所変数は束縛変数で、大域変数が自由変数だが、
束縛と自由はもともとλ計算や記号論理の用語なので、
そっちから理解しないと分かりにくいと思う。
>>433
432の「lambda{|x,」は外部のxと共通なわけだけど、これも束縛されてんの?
>>434
束縛を統語的に定義しないと判定はできんのだが、λ式の規則を流用すればイエス。
λ式や論理式における束縛された変数とはぶっちゃけ仮引数と同名の変数であって、
その変数が仮引数として有効なスコープで束縛されている。

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

だから実際どうだかは知らないがlispの仕様に束縛変数なる用語があるとは思えん。
例えば湯浅・萩谷「Common Lisp入門」では束縛変数という用語は使われていない。
>>435
てことは>>425はスレ違いってことでFA?
>>436
binding()というのもあるから束縛から完全に自由というわけでもない。
[ruby-list:13435] の周辺を参照。
schemeには束縛変数という用語はあるみたいね。
これのことかな 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.
藻前ら、Rubyの話をしなさい!
ただでさえ板違いなのにその上スレ違いの話を続けるのはどうよ?
>>440
じゃあ何かネタを振れ
ちょとベンキョウになったがナ〜
この手のネタっていまみたいにヤンワリ流れてるうちはいいんだが
俺様なヤシが現れると途端にフレームになるんだよね。。。
おれ lisper だけど、
ruby 使い出した理由は
lisp 的に使える perl という
ような所。
>>443
お前、rubyでlisper的に戸惑った点とかありますか?
足し算が
+ 1 2 じゃなくて 1 + 2
とかじゃない?
2項はともかく (+ 1 2 5) とかできるのは確かに便利だな。
inject で書けるのは分かるがめんどい。
>>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
>>447
これって組み込みでもええんちゃう?
これでも同じ。
class Symbol; def [](*args) args.inject{|i,j| i.send(self, j)} end end
:op[*array] で array.empty? の対処として Id を op の単位元とすると
>>447 だと :op[Id, *array] と書くことになる。効率は一つ分悪い字面が短い。
>>449 だと :op[*array] || Id だが Id はなくていいから自由度が高く効率もいい。
ちょっと違うけど、どっちがいいのかは分からん。
>>447は空の引数だとエラーになるだろ。
()、つまり空のブロックはnilになることからすると、:op[]がnilになるのは
自然に思えるんだが、>>450の言いたいことがよく分からん。
勘違いしてた。スマソ
x = Set[1,2], e = Set[] のとき :+[*x] == 3 で :+[*x] == 0 であって欲しいけど、
単位元0は指定しないと分からんから :+[0,*x] を強制する >>447 も悪くないと思った。
でも >>449 でも同じように書けるのね。
- x = Set[1,2], e = Set[] のとき
+ x = Set[] のとき
空の引数を許さないようにってこと?
でもそれはSymbol一般には拡張できないと思うんだが。
確かに。やはり >>449 の方が優れてるな。
階乗を :*[1,*(2..n)] と書けるかと思ったら1.8ではできないのかあ
なんか勉強になるなあ。
ところでrubyのlambdaはコストが高いような印象があるんだけど実際のところは
どうなんだろ?
末尾再帰の最適化はやってるのかな?
>>456
できるだろ?
>>457
> 末尾再帰の最適化はやってるのかな?
ない。
selfのような、現在のブロックを指すキーワードというものはないから、
同じブロックであることは保証できないし。
>>458
updateしたらできるようになりました。指摘サンクス
いやupdateしたせいではないかも。最近の変化を理解してない。
def m(*a) a end; p m(*(1..3)) が [1...3] を表示するように変更したのはなぜ?
しばらく前は [1, 2, 3] だったと思うのだけど。どこで議論された結果なんだろ。
暗黙のObject#to_aを呼ばないようにした副作用かな。
しかし呼び出しの時点で*がついている以上、展開されるのが正しいような気がする。
漏れもそんな気がする。つうか正直驚いたよ。
464名無しさん@お腹いっぱい。:03/05/02 01:20
言語仕様の細かいところで表現の限りを尽くそうとする人たち、スゲー
あたしゃRubyではJavaっぽい優等生な書き方で、
再利用しないようなコードしか書けません(書いたことがありません)。
>>464
> あたしゃRubyではJavaっぽい優等生な書き方で、
> 再利用しないようなコードしか書けません(書いたことがありません)。

なんか逆な気がw
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
eql? と equal? も入れていいんじゃないかな
!= に使えないのは残念
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
1.8になってどこが変わったとかいうドキュメントはいずこに?
あ〜あせっかくほどよく潜行してたのにのにのにぃ。。
>>469
http://www.ruby-lang.org/ja/
[リファレンスマニュアル]-[ruby 1.7 feature] [ruby 1.8 feature]
Unixと関係ない話題は他でどうぞ。
473名無しさん@お腹いっぱい。:03/05/07 15:24
pdumpfs使っている人いない?
pdumpfs exclusion patchを当てたんだけど、指定したディレクトリを除外してくれるのはいいのだが、動作時間変わんないんだよね。
除外はするけど、中見てるのかな?
Rubyと関係ない話題は他でどうぞ。
>>474 rubyだろ!
制御端末切り離して STDERR を close した後に、
例外で終了するときに STDERR へエラーメッセージを出さないようにしたいのですが、
なにか良い方法はありますか?
いまは STDERR を close せずに /dev/null へつないでしのいでいます。
>>476
トップレベルで例外を全部拾う。

begin

#本体

rescue Exception
end
>>477
むぎゅ〜、それしか無いですかね?

デフォルトのエラー出力ポートの、
出力先や出力の有効無効を大域的に変更できれば嬉しいように思うのですが・・・
>>478
$stderr を reopen とか close した場合ってなんか弊害あるの?
>>479 $strerr の reopen は将来的に挙動が変わる可能性があるので嫌、とか?
>>480 なるほど。
それはそれとして Kernel::raise は $stderr.write を経由してないみたいだから、
>>478 はバグレポートか ruby-dev に直訴した方がいいかもね。
>>480
reopenは変わらないと思うけど。変わるかも知れないのは$stderrへの代入?

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

しかし、なんでこう組み込みにしたがる奴が多いのかね。
>>478
$deferrってのが追加されるモヨリ
作者の人のにっきだの。
ttp://www.rubyist.net/~matz/
486478:03/05/14 03:30
>>484-485
これ ($deferr & warn) 、私の欲していたものにかなり近いようです。

>>483
私のことでしょうか?
487483:03/05/14 12:42
>>486
いや、ruby-talk。
488名無しさん@お腹いっぱい。:03/05/15 22:15
1.8.0-previewを使っていたけど、意味不明な振る舞いに悩まされて
もう音を上げました。1.6.8に戻します。戻します。戻します……
>>488 の振る舞いが意味不明です
Hikiのddd問題が意味不明です
>>491
環境揃えたけどウチじゃ再現しねー
>>491
それ無限ループ。
>>491の振る舞いも意味不明です
>>491:1: stack level too deep (SystemStackError)

再現しますた。
>>495
僕ってほんとバカ。exit; # こやりゃroopしないだろ

「roop」
497bloom:03/05/16 11:14
>>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
>>498
まじか?
それは、ともかく
「近頃広告がウザいのであんまりあげないで欲しかったりする」よ
いい2chブラウザ佐賀瀬谷
2chブラウザが何であろうと広告貼る方には関係ないだろ。
表示しないようにしても、どんどん新手が来るんでめんどくさい。
ageの話じゃなかったのね。どでもいいです。rubyの話しよ

↓ こんな Ruby は嫌だ。
Windows XP でしか動作しない。
feature freezeされている。
505名無しさん@xyzzy:03/05/17 07:51
実は alias ruby='perl -mRuby'だったりする
matzとLarryが実はできてる
507名無しさん@LEmacs:03/05/17 18:42
perlスクリプトを食わされると、黙ってperlをexecするruby

イイカモ
>>507
昔は#!/usr/bin/perlとか書いてあるとperl呼ぶようになってたけど、今はなくなったんだよな。
>>508
そうなん? ruby-1.6.8 では Perl と同じように #! のコマンドを実行してるみたいだけど。
なくなったのは-*-の特別扱いだった。ごめん。
pp が組み込みになるといいな・・・
512名無しさん:03/05/21 04:22
Rubyに限った話ではないけど、
自分のIPアドレス(127.0.0.1ではなくて)を得るにはどうしたらいいですか?
>>512
「自分の IP アドレス (ってそもそも何だ?って話になりそうだが)」を得る
generic な方法は無いと思われ。
つーか、スレ違いっていうか、くだ質あたりで聞いた方がええんちゃう?
>>512
IPSocket::getaddress(Socket::gethostname) とか?
インターフェースが複数あったり、IPv6アドレスや、エイリアスも考慮するとプラットフォーム依存。
if_nameindex(3) や ioctl の SIOCGIFADDR あたりを拡張ライブラリにしてくださいな。
String の末尾数行を削除するメソッドってあります?
こんな風に書いて使ってるんですけどOKなんかな?

class String
 def deltail(num)
  a = []
  self.each { |line| a << line }
  num.times { a.pop }
  a.join
 end
end
>>515 ないと思うがそれを書くならこうかな
class String
  def deltail(n)
    to_a[0..-(n+1)].join
  end
end
class String
 def deltail(num)
  sub(/\A(.*?)(?:[^\n]*\n?){#{num}}\Z/m, '\1')
 end
end
\1はいらんな。

sub(/(?:[^\n]*\n?){#{num}}\Z/m, '')
519山崎渉:03/05/22 01:48
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
520515:03/05/22 10:46
>>516
すっきりしててエレガントですね。そういう Array 化 (to_a)
を知りませんでした。参考になります。

ちなみに、! なメソッドとして定義したい場合はどのように
書けば良いのでしょう?
>>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
ついでにいうと>>516だと "foo\nbar".deltail(3) で例外が上がる。
その文字列の行数よりも大きな n を指定したときにどう振舞うかは
あなたが決めることだが、>>516のままでは行儀が悪いので、
例外を上げるにしても以下のように自分で上げ直すべきだろう。

  def deltail(n)
    to_a[0..-(n+1)].join rescue raise(ArgumentError, "too large arg `#{n}'")
  end
>>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
別解。

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

ipaddr.rb (IPAddr) って名前が悪いと思う。

標準添付されるライブラリならば、変に略した名前なんかにせずに、
ipaddress.rb (IPAddress) とする方が良いと思うのですが、
みなさんはいかが思われますか?
addressをaddrと略すのは、かなり一般的だと思うけどなあ。
一貫性が問題かもね。略してたり略してなかったりするのは変かも。
528名無しさん@お腹いっぱい。:03/05/23 01:09
Ruby+SOAPについて解説しているサイトないですか?
>略してたり略してなかったり
tDiaryのプラグインでrefererとreferrerが
混ざってるっていう話もあったね。
RFC2616 でも (the "referrer", although the header field is misspelled.)
って、わざわざいってるわけだから referer にするのが吉かと
>>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

うーん、微妙だな…。
533515:03/05/23 15:15
いろんなコメントありがとうございます。非常に勉強になります。

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

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

スレ違い、すみません。ム板逝った方がいいでしょうか?
>>533
> グループ化って、マッチ後 $1 とかで参照できるアレですよね?
それが後方参照。(?: )だと$1とか\1とかの対象にならなくなる。

でも>>523の場合はどっちでも一緒。
535515: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? という
表現は行にマッチする表現なんですよね。

なぜ最後に ? が必要なのかがいまいちわかりません。
>>535
> >>534
> すると >>523 の正規表現部分は /([^\n]*\n?){0,#{n}\Z}/m
> でも同じで、() でグループ化しているのは、() に含まれる
> 部分にマッチした部分を {0,#{n}} の対象としたい、って
> ことですよね。
そう。

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

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

> なぜ最後に ? が必要なのかがいまいちわかりません。
改行で終ってない場合のため。
?がある場合とない場合で、"abc\ndef".deltail(1)を試してみれば分かる。
呼び出されたメソッド名を得る方法ってありますかね?
こんなイメージで。

def foo
get_current_method_name
end

p foo # => "foo"
ruby-talkとかで月一くらい出る質問だな。

def get_current_method_name
/`(.*)'/ =~ caller(1)[0] and $1
end
>>538
うげ、FAQ ですたか。どもです。
540515:03/05/23 17:33
>>536
> 改行以外。^は文字クラスの中と外では意味が違う。
おぉ!うっかりしてました。これで頭のなかで理解できました。
ありがとうございます。

意味は理解出来たけど、自分でこれを考え出すのは無理だなぁ...。
やっぱ、他人のソースから学ぶんでしょうか?
>>540
どんな凡人でも経験積めば読み書きできるようになるっしょ。ガンガレ
542名無しさん@お腹いっぱい。:03/05/24 13:56
l=open('hoge','r').readline
ってなopenをした時ファイルは読み込み後closeされるのでしょうか?
>>542
いいえ。
いちいち明示的に close する(書く)の忘れやすかったりめんどくさかったら、
ブロックにするのがいいかも。

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

漏れはいつもこんなんしとる。
data = File::open("data.txt") { |f| f.read }
外人さんの作ったライブラリなんかだと、クラスの HTML のドキュメントが、
Smalltalk のブラウザみたいフレームで複数ペインになってるのがありますよね。
あれって一体どうやって生成しとるんでしょうか?
>>543
ありがとうございました
>>542
ゴミになったらcloseされる
文字列の先頭 n byte だけを切り出したいんですが、

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

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

string[0,#{n}]

はいい感じなんですが、

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

になっちゃうんです。

split して、1 つずつ size をチェックして判断していくし
かないでしょうか?
>>549
#!ruby -Ke
p "ほげほげ"[/.{0,3}/n] # => "ほ\244"
p "ほげほげ"[0,3] # => "ほ\244"
>548
ファイル記述子の値域がstdio依存なのとRubyの仕様は別の話だと思われ
もし深刻ならばRubyの実装でカヴァーすべきかと
552山崎渉:03/05/28 16:49
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
>>549
mobileimap の String#cut にあるように
"あいうえお"[0,5].scan(/.+/m) #=> ["あい"]
という話かと思ったけど、違ってそう。
554549:03/05/29 11:24
>>553
あ、それです。やりたいことは。なるほど。
でもなんで、.+ で scan すると最後の中途半端
な 1 byte が削除されるんでしょう?
>>551
どんなトラブルなんだったっけ。
>>554
549といってることが完全に逆じゃん。

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

とりあえずjcode.rbでも使っとけ。
『"』と『"』に挟まれていない『,』という正規表現は
どう書けばいいでしょう?

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

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

それだと

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

という感じで分割できるんですけど、なんか汚いなぁ、と。
CVSを分割したいということなら、
http://raa.ruby-lang.org/list.rhtml?name=csv

CSVの仕様自体がきれいじゃないから、そんなに簡単にはいかない。
>>555
sunos4が手元にないから知らないけどlibc内でfdが予期せず再利用されるのでは
『Ruby magic Ruby で極める正規表現』ってどう?
買おうかと思って本屋で立ち読みしたんだけど、
そんなに深い内容に思えなくって…。
とどのつまり、 GC にまかっぱなしにしない、
というのが最善解ということでよろしいでしょうか?
そもそも file descriptor のようなものは GC にまかせるべきではありません。
ならばそもそもGCのときにcloseするべきではないと思われ
まあそういった仕様でも良いと思いますよ
折角ユーザから隠蔽してる「file discriptor」のようなものの管理は
ユーザにまかせるべきではありません。
しかしfdを触る方法も提供してるから微妙かもね
>>567
正に matz 氏の言うところの、内臓が見えちゃってる状態だな。
腹の皮がないと、人は死んじゃうの?
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しないといけないというのは不親切。
>>569
> 腹の皮がないと、人は死んじゃうの?

体液が流れ出て、脱水症状で死ぬかも
ティンコの皮が(
松本さんがどこかでインクリメントの
foo++
というスタイルはオブジェクト指向になじまない、ということをおっしゃっていたと思うのですが、
その理由はなぜですか?
何を足すの?
>>573
0++ の結果がどうなるかを考えてみよ
obj.succ があるんだから obj++ があっても良さそうな気がするが。
obj++ があるとすれば obj.succ! だが 0.succ! ってなんじゃろうという話かと。
それをいうなら 0+=1 だって出来ないのに += という構文はあるわけだが
>>578
変数とオブジェクトは違うんだが。
>>577
0.succ! は 1 になるのは自然だと漏れは思うのだが、それは変?
0.succ == 1は当然だが、succ!だと0自体が1に変わるってことになるだろう。
>>579
++ をメソッドに割り当てる必要があるかということなんだが。
a += b が a = a + b という構文に割り当てられているのだから
a++ を a = a.succ などの構文に割り当てるという規則があっても
不思議ではない。
イラネ。
a++ が a = a.succだと、
オブジェクトaに、++というメッセージを送ると、
新たに生まれたaによって置き換えられる
っていう意味?
>>581
それのどこが変なの?

# Ruby の実装上 Integer#succ! がありえないというのはひとまず置いといて、
>>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)
>>584
少なくとも += はそうなっている。
ruby -e 'a = "a" ; p a.id ; a += "b" ; p a.id'
>>586
#=> 1
mutable integer は論外だろう。
++ がない理由としてしばしばあげられるのは、
++ がオブジェクトでなく変数に対する操作を表す構文であるいうことだが、
それは、+= のように変数に対する操作を表す構文がすでにあることを擁護しない。
++ を採用しないのは単に好みの問題であって、
オブジェクト指向と相性が悪いということではないと思われ。
590584:03/06/01 00:10
>>587
それは知っている。
というか、知ったときに、騙されたと感じた。
>>590
しかし += が新たなオブジェクトを持ってくることがなければ
integer を mutable にする必要があるのでは?
mutable integer ってなんじゃらほい?
mutable な integer のことでわ?
オブジェクトは mutable と immutable に分類される。
>>593
ぐぐってみて、mutable と immutable はなんとなくわかりますた。

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

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

+=が、integerとstringで同じ動作をすべきという考えもあるけど、
私の心の中のstringに対する+=は、concat!だったのよ。
>>596
つまり、「仕様が俺の思い込みと違う。騙しやがったな。」という話しでつか?
>>596
むしろ += を再定義出来ないことが不自由に感じることはある。
コンテナでは += を破壊的にしたいことはあるから。
だが += を再定義出来ないことが前提なら解釈を一律にしておくのは妥当な仕様だろう。
>>597
サクーシャは驚き最小という言葉に甘んじているからそういう話もありと思われ
600590:03/06/01 02:44
>>597
いえーす
>>595
あ、そうそう。そっち。
>>601
それはなんでなんでしょう?
整数はあくまで整数であって整数のコンテナではないから。
逆に聞くが、
もし Integer が整数のコンテナだったとしたら、その中身は一体何じゃらほい。
>>604
ん〜、わかんないけど、数値みたいなもんなんじゃないの?
String が mutable なんだったら、
別に Integer が mutable だったとしてもそんなに変とは思わないんだけど・・・
>>605
むー、正直そんなことをいう人には初めて会った。
円周率に PI という名前をつけて、更に a = PI によって a に代入していたとする。
もし数が mutable なら a.replace(3) などとすると、その世界では PI == 3 に
なっちゃうわけだが、そういう可能性があっても面倒ではないと考えるのね?
607605じゃないよ:03/06/01 16:26
なんかこの議論、つい最近どっかで見たことがあるだけど、どこだっけ……。

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

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

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

当然前提として、

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

にならなアカンやろけど。
bigdecimal は以前 mutable だったというウワサが
>>607
> なんかこの議論、つい最近どっかで見たことがあるだけど、どこだっけ……。
ほんとに最近か? 昔のFORTRANがそんなだと思ったが。
>>606
ちょっとまって、それは詭弁ではないですか?

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

String なら実際にこういうことが起こっているわけですが、
Integer だとこうではいけないという主張の、
本質的な理由が知りたいわけです。
>>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))
>>610
待て、国を文字列でreplaceするのは反則だろう。
3.replace(4)としたら、1+2が4になって欲しいわけか。
>>613
そんなことは誰もいってないと思うけど?
Integerをmutableにするというのは、意味的にはそういうことだ。
>>613
いや、Integer が「整数のコンテナ」になって欲しい、ので、1+2 はやっぱり 3 です。

というか、>>611 を読んで、自分が相当変なこと言ってる気がしてきました。
「immediate value」って初めて聞く言葉なんですが、
「Ruby 用語集」の「即値」のところの話しですよね。
うーん、よう分からんようになってきた。頭冷やして出直してきます・・・
>>611
> >>607
> > 円周率はともかく、物理定数の正確な値が求まったとか……。よー分からんけど。
>
> それはコードを書き換える必要があるので、実行中に値が変わることとは別の話。

なぜコードを書き換える必要があると?
# 本題でないのでスルーしてね♥

> > a.equal?(b) #=> false
>
> mutable/immutable と immediate value か否かも別の話。
> immediate value にするかどうかは実装の都合に過ぎないよ。

書き方が悪かった。immediate value かどうかを問題にしたつもりじゃなかった。

a=3; b=3;
a.replace(4)
b #=> 3

にならないと困るよね、ってこと。
>>604

ビットのコンテナ
整数というのは代数と順序で定義された対象だから
それをどれだけ反映するかを前提にしてるんじゃないかな。
整数変数ではなく整数をプログラミング言語で表現するなら
mutable というのは全く考えられない。

しかし文字列もそうなんだけど、Cプログラマのmatzには
文字列の数学的性質に馴染みがなかったから string を
mutable にしたんだろう。

それと、「a == b ならば a.equal?(b)」という一意性と、
即値は一応別の概念であって、即値を採用したのは効率の
ために過ぎず、Fixnumなどの一意性は即値の副産物として
たまたま得られたものだ。
グパった
621名無しさん@お腹いっぱい。:03/06/05 21:17
1.8はしばらくおあずけですかな。
なんかあったとデスカ?
アガりついでに短信キボーヌ
割り込みかかったみたいなり
MatzたんのWeb日記見られたし(↓)
http://www.rubyist.net/~matz/

潜航〜、潜航〜
俺定義オープンソース追放キャンペーン中
しばらくmatzしかない。
オープンソースじゃなくてオウプンソースと表記しましょうか。
Oopn' Source
オープソンース
オウプンソウス

オープソンースだとイマイチ違和感あるけど、ちぢめて
オプソンスにすると、まったく別物に変貌するけど馴染みがある音だ。
>>628
オプションとちょっと似てるからか
オープンソース = オープンソース
ソースが公開されてる = オープン・ソース
公開されてる=publicじゃないのか?
こういう文脈で public といえば再利用に制限を設けないという意味ではないかと
日本語で「ソース公開ソフト」にしますか。
むしろ、ソース丸見えみたいな感じかと。
開算符
/*
 * このソフトウェアはソース丸見えです。
 */
"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."
露天ソース
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..."
>>637
> With Nude Source, people will expect that the underlying, uh, source
> will be, ah... readily accessibly for, ahem, fooling around with. Hmmm...

ワロタ
love and source
ソースボート
643名無しさん@EMACS21:03/06/09 03:36
ruby-postgresで、tableの一覧を得る方法ってあります?

exec('\d')だとなんか構文が変エラーが出ます。
"\d"も\\dも同じエラー。根本的に違うのかなあ。

postgresでスラッシュじゃないコマンドを聞いた方が早いのか?!
ふつうに
SELEcT tablename FROM pg_tables WHERE schemaname = 'public'
でいけないの?
Ruby の正規表現で最短マッチさせるやりかたがよくわかりません。
例えば

 <font size=+1>foo</font> bar <font size=+1>baz</font>

という文字列から <font>〜</font> を取り除き、

 foo bar baz

に変換したいのですが、

 gsub(/<font.*>(.*)<\/font>/, $1)

だと

 baz

だけになってしまいます。どうやれば良いのでしょう?
 gsub(/<font.*?>(.*?)<\/font>/, '\1')
647645:03/06/09 11:56
>>646
わんだほー。
つーか、俺ってアホ。自分で自分の首しめてたわけね。
648名無しさん@お腹いっぱい。:03/06/09 17:19
オープンソースかどうかなんてどーでもいいと思うんだが。
ソフトウェアは自由でなければならない、っていう縛りを
設けたら、もうそれは「自由」じゃない気がするし。
Ruby は好きだけど matz さんの野望はよーわからん。
>>648
「オープンソースかどうかなんてどーでもいい、ソフトウェアは自由でなけれ
ばならないっていう縛りを設けるな」というのもまた一面「自由」じゃない。
まあ、マグロじゃないものもマグロとして売ってるし、
シシャモもシシャモじゃない世の中だから、
オープンソースソフトウェアが OSD 準拠じゃなくてもしょうがないやね。
651名無しさん@お腹いっぱい。:03/06/09 20:40
>>648
matzさんは「中の人」だからね。人生かかってるんでしょ。
Matzさんの話をするための別なスレ作れよ。
ライセンスあれこれスレに逝け。
654無料動画直リン:03/06/09 21:14
フリーライダーwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
つーか、ライセンスの話をするのに、「俺はこういう意味で使ってる」なんて
のは話にならんどころか、言い訳にもならんだろう。
定義に曖昧さが許されるライセンスってどこの星の話だ。
>>656
どこでそんな話してんの?
>>657
漏れの心の中。
659名無しさん@EMACS21:03/06/09 22:52
>644
おお、いけました。thanks。postgresは初心者なんで、そのフツーが判りませ
んでした。
普通の SQL かと。
オープンソースの話も大事だが、それよりも Ruby 1.8 をはやく
出して欲しいなあ。もうだいぶ予定をすぎているのに。
はやく 1.8 を出すほうが、オープンソースの啓蒙にもプラスになると思うんだけどなあ。
なまじあのblogが有名になっちゃったもんだから本題を外れてきた気がする。
でもライセンスをきちんと理解してない人たちが
qt 関連で騒動を起こしたわけだよね。
エプソンのプリンタドライバが GPL 違反で一時
公開中止になったのとかもあるし、
ライセンスはかなり現実的な問題になっている。
いつまでスレ違いレスを続ける気ですか?
matzはオープンソースで一山当てたいわけか。
>>661
おれはあれを見て、Perlな人が、いつも気をつけて発言していたってことが
やっと分かったよ。
REXMLが入ったから、直preview3が出るだろ。
>>666
「直」じゃなくて「時機」だな。
「もうすぐ」だろうといいたかったんだが、
「タイミングによる」といいたいのか?
>>667
違う「磁気」だ
もう自棄。
このスレはおもしろいですね。
「直に」とか「直、」とか区切りがないとわかりにくいね
673667:03/06/11 04:13
スマソ、日本語不自由なのは漏れの方だったみたいだ。
>>666 の「直」の方が正しいんだね。
Rubyxかよ!
rubyxxかよ!
ubyxなんてほんとにあるのかよ!
677るびきち:03/06/13 07:13
    ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      rubikitch
でも独自のディレクトリ構造ってヤだな。
[ruby-list:37790]はNavich。
680名無しさん@お腹いっぱい。:03/06/14 16:21
"a123b123456c12d"

"aXb123456cXd"
にしたいのですが
gsub(/(?=[^b])\d+/,'X')
しても
"aXbXcXd"
になってしまいます。よい方法を教えて下さい。
681あぼーん:03/06/14 16:26
s = "a123b123456c12d"
s.replace "aXb123456cXd"
rubyx?

>>682
ありがとうございます。その方法でうまくいきました。
うまくいくでしょうけど……
ポカーン
あ〜はっはっはっ! あ〜はっはっはっ!
どんなスレにもど〜んとageで初心者質問してくるやつがいるのな。
>>688
age で初心者質問すると何か不都合でも?
ここは質問用スレじゃーないよ。一応。
>>690
Ruby に関する質問すると何か不都合でも?
質問スレじゃないから、質問する時にageる意味は無いよ
このスレ自体が板違いで、本スレはこっちだろたぶん↓
http://pc2.2ch.net/test/read.cgi/tech/1042004759/
UNIX 板らしい話題って何か無いだろうか。

rubyx は linux だし。
#いちおー書いとくと[ruby-talk:73215]な。
>>680
gsub(/\d+(?=[^b])/, 'X')

gsub(/\d+(?!b)/, 'X')

最後に数字があるときに違うけど。
嘘はやめい。先読みは使えん
gsub (/([^b\d])\d+/, '\1X')
勘違いしてた。b以外の後の数字か。それでも間違ってるけどな。

# Oniguruma専用
gsub(/(?<![b\d])\d+/, 'X')
699名無しさん@お腹いっぱい。:03/06/18 11:30
ラビット関根
ライト兄弟
鬼車の最新のってどこで配布されていますか?
pre3 まだー?
>>703
おちつけ。
日本時間で6月20日17時の予定だ。
濡れてきた
>>702
それは、本当に最新でしょうか?
たとえば、[ruby-dev:20189] で onigd20030514.tar.gz が出ていたはずですが、
そこには反映されていない (タイムスタンプが古い) ようですし。
で、preview3出ないんですけどぉ。
ま、あと20分くらいあるから
ruby-core にてpreview3のサスペンドが告知されてますけどね。
# みんな ruby-core は読んでないのか。
んなもん読んでる暇ねーよ
712名無しさん@お腹いっぱい。:03/06/21 23:51
仕事でruby使ってるとこあるの?
713名無しさん@お腹いっぱい。:03/06/22 00:07
使ってるよ
まじだよ
オナーニが私の仕事です
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
>>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"
出た。
pre2 の時みたいに何か入れ忘れてるに 300 Matz
pre2は何忘れてたっけ。
>>721
Test::Unit と win32/registry.rb らしい。[ruby-dev:19711]
どさくさにまぎれて何か余計なもんが混入してないかな?
ぎく。
.xvpics ハケーン
>>722
早速MANIFESTとかいろいろ修正が入ったわけだ。
修正するための preview だ
>>725
慌てて確認してしまった matz 氏に乾杯。
729716:03/06/24 03:22
>>718
どうもありがとう。
参考になりました。
730_:03/06/24 03:34
Set 、組み込みか拡張モジュールになんないかなぁ。
組み込みメソッドで Set を返すべきものってあるか?
組み込みで思い出したけど、仮に
Rational と Complex を組み込みにして mathn 相当にした場合、
動かなくなるコードは実際にはどんなのがあるんだろ?
>>733
引数として Integer を期待するものに渡した場合とか。
>>734
to_intを定義しとけば通るわけだが、それが望ましいかは微妙だな。
何かの個数やサイズとして使う場合は問題ないと思われ
>>733
古いRationalやComplexをmarshalしたデータを読むコード
>>737
それは古い形式用のコールバックを定義すれば何とかなる気がするなあ
>>738
例えばloadしたオブジェクトが_post_loadなんてメソッドを持ってたらそれを
呼ぶとか?
実際すでにStruct::StatとFile::Statがそういう状況なんだよな。
740YAML が欲すぃ:03/06/27 03:15
shim-ruby16_18-1.8.0-preview3 まだぁ?
DBI とか DBD とかの入門に良さげなサイトやドキュメントってありますか?
742741:03/06/30 20:40
手元にあった Ruby Developer's Guide が良さげなんでこれで勉強してみまつ。
影舞を入れてみようと思ったけど
QuickStartのguest.cgiにアクセスするところで500になってしまう。
シェルから直接実行したらちゃんとHTMLが出てくるのに。
rubyが1.6.7なのがいけないのだろうか。
>>743
で、 error_log は確認しないわけ?
いや、見れたら見るんだけど見つからない。
/var/log/apacheはないし
で?
影舞?
>>747
影舞を知らないの?
獅子舞?
川澄舞?
751名無しさん@お腹いっぱい。:03/07/02 01:39
影舞重くねえ?
だれか >>741 に『Ruby-DB ウェブデザイン』をすすめてやって下さい。
753741:03/07/02 04:57
>>752
漏れもさすがにそこまでバカじゃないでつ。
>>748
もったいぶらないで教えてよ!
もったいない
PHP の Array みたいな、
ordered mapping っていうか、順序付き Hash の定番ってある?
つーか、標準添付して欲すぃ。
>>756
PHP知らんのだけど、
> ordered mapping っていうか、順序付き Hash の定番ってある?
どういう順序を期待してるわけ?
>>757
あ、PHP のっていうのは嘘かも。
each や each_keys などで、要素を任意の順序で得られる、という意味です。
その「任意の順序」ってどういうものかを聞いてんだけど。
追加した順序?
keys.sortの順序?
ですから、「任意の順序」です。

というか、好きな順序にさえできれば手段はどうでもいいです。
追加した順序でもいいですし、自由に 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 の需要って結構多いと思うので、
標準で添付されていた方がみんながしあわせになれるんじゃないかなあ、と。
とりあえずPseudoHashってのはどうよ。
http://www.notwork.org/~gotoken/ruby/p/pseudohash/
結局、ハッシュマップと配列を組み合わせる以上のパフォーマンスは出ないんじゃないのかな
>>761
これは良いものですね。

で、需要が結構ありそうなのにもかかわらず、
これがなかなか標準添付にならないのは、
やっぱインターフェイスがいまいちきまらないからかなぁ、という気がしてきました。

PseudoHash のインターフェイスもいまいちな気がしますし、
もちろん私の挙げたものでもやっぱりかっこわるい。
問題は順序の指定方法なんだろうな。
予め順序を決めておける場合と要素を追加することで決まる場合がありそう。
>>764
ですね。あとは、同一キーの指定があった場合の挙動も。
例外を上げるか、無視するか、気にせず追加していくか。
new のときはどうするか? add のときはどうするか?
とか。
>>763
なにより、需要が少ないんじゃないのか。結局。
>>766
げ、やっぱりそうなんですかね。
じゃあ、この話題止めます。俺様 OrderedMapping で自己満足に耽ることにします。
正直なとこ、これに関する要望ってあまり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 の著者たち――は、この言語
が英語圏においてさらに広く宣伝されるべきだと考えている。


日本で言う「アジアで大ヒット」みたいなかんじでつね・・・。
つまり、今のところ Ruby は英語圏には十分広まっていない、
このままでは "Big in Japan" で終わってしまいかねない。

ということでつか?
「日本で大ヒット」はしょぼいミュージシャンのための言葉だけど
でも、Rubyは本当に日本で大ヒットなんだよねってニュアンスなんじゃないの?
日本で大ヒットしてるの?
"but"だもんなあ。
GUIプログラミングを始めようと思うのですが、
ruby/tk,ruby/gtkとかいろいろあるみたいでどれが良いのか分からないです。
今はどれを選ぶのが良いでしょうか。
ruby/wxWindows
wx はム板で熱いね。
【GUIライブラリ】wxWindowsでのひょーん
http://pc2.2ch.net/test/read.cgi/tech/1052186697/
U*IX なら ruby/gnome2 がいいんじゃない。ruby/gtk は昔いろいろ触ってた
けどかなり簡単だった。(まあ凝ったウィジェット自作しようとするといろいろ
メンドイけど)
GUIだけのためにGNOME2かよ!
779名無しさん@お腹いっぱい。:03/07/05 23:46
「日本で大ヒット」つってもいわゆるヘボミュージシャンみたいなやつのことじゃないぜ。
ちゃんと英語圏でも通用しうるようなやつなんだよ。

というのがこの本の著者たちのメッセージなんだと上の紹介文は言いたいのだろう。
780名無しさん@お腹いっぱい。:03/07/05 23:52
「日本で大ヒット」=ヘボそう

という先入観があっちではあるんだろう。
>>779
でも、そう言わなきゃならないところがやはりアレなわけで。
アレなのは「日本」なのがアレだな。
>>778

>>777は、Ruby-GNOME2(プロジェクト名)と言いたかったんじゃないかと思われ。
より正確には、その中のRuby/GTK2(バインディング名)。

ttp://ruby-gnome2.sourceforge.jp
からたどれるサンプルを見れば、簡単さが分かると思う。
簡単なエディタは、(gladeでのインターフェース記述部を除けば)
300行弱で実装できてる。

と、ネタにマヂレス
784774:03/07/07 09:15
皆さんありがとうございます。
ruby/GTK2でやってみます。
けいじゅさんナイスだなぁ。

あの方法で OrderedMapping を定義できるようになるとかなり嬉しい (しつこい) 。

こんなのが書けるようになると思うともう失禁しそうです。

data = %Y[
--- %YAML:1.0
hoge: fuga
foo:
- bar
-
baz: qux
]
>>785
てきとーな yaml() が定義されてるとして、

data = yaml "
--- %YAML:1.0
hoge: fuga
foo:
- bar
-
baz: qux
"

じゃマズイ?
>>786
いや、もちろんそれでも良いのですけれども、
(あたかも) リテラル記述できる (かのような気分になれる) ところが嬉しいのです。

D でええやん、という立場で言うなら、
現在でも下記のように書けるからええやん、ってな話になりますが、
それではちょっとさびしいな、という話です。

data = YAML::load(<<EOY)
--- %YAML:1.0
...
EOY
なんとなく分かった。
リテラルっぽく見れる構文糖として欲しい、ってことなのね。

ただ「%?(..) の?のところを自由に定義(メソッドにマップ)できるように」するなら、
>>785 の例は、%Y[..] を YAML::load 以外にマップしているスクリプトと
共存出来なくない?

def Y(s)
 YAML::load(s)
end

だと Y が一般的すぎてマズー、てのと同じ問題をかかえると思われ。
>>788
そうなんですよね。私もそれが問題だよなー、とは思ってました。
やっぱ難しいかなぁ・・・
うーん。なんかあと一工夫でうまくいきそうな気もするけど
だめかなあ。
foo = %P(# Perl script)
bar = %T(# Python script)
baz = %G(; Gauche script)

と、夢は際限なく広がるんだけど、驚き最小を思いっきり violate するよなぁ・・・
>>791
Gaucheのやつは()で括ったら破綻すると思うが。
%G((if (foo) (bar) (baz))
↑どこまでが%リテラルになる?
>>792
いえ、こう書くんです。
%G(\(if \(foo\) \(bar\) \(baz\)\))


嘘です。ごめんなさい。察してください。
現状でも
%w( (foo) (bar) ) #=> ["(foo)", "(bar)"]
だから破綻しないのでは?

むしろ対応がとれてるのが確認できてうれしいぐらい。
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

>>795
これはそれぞれのバージョンの仕様?それともどっちかがバグ?
>>795
1.8.0がどういうルールで処理してるのか謎だな
Winnyのエロクラスタで発見
210.251.121.214:48164 helium.ruby-lang.org
>>798
む、Linuxで動くWinny実装があるのか?(藁)
Wineで動きますけど何か?
>>799
gateway でしょ (マジレス) 。
>>801
helium は gateway してないよ (マジレス返し)。
>>795
1.8のバグじゃないかな。
仕様変更じゃない? greedyって言葉知らない?
いや、バグ。
単語間でカッコのネストを保存し忘れてる。
#{}を変更したときのミス。
保存し忘れというより、毎回初期化してしまってるというべきだった。
あー、でもこれstaticじゃなくできるかも知れないなぁ。
>>805
そこまで分かってんなら、傍観よりもパッチ投げるなりなんなりしれ
>>807
いや、matzだから
809807:03/07/12 14:03
え、>>808がmatz氏?
まだ IP unreachable なはずだと思ってた。
んじゃ、修正よろしくお願いします。
nobuだろ。とっくにcommit済みだし。
811807:03/07/12 15:21
失礼。逝ってきます。
812山崎 渉:03/07/15 11:19

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
>>804
greedyってなに?
正規表現と関係ある?
>>813
そう思ったんなら「正規表現 greedy」でぐぐる。
>>751
影舞入れてみたのですが、使い物にならないほど遅い。
ruby が 1.6.7 だから?
postgres 使わずに xml で保存してるから?
mod_ruby 入れてみたがとくに早くならなかった。
ところで影舞スレどこかしら。
斉藤さん頑張って! 応援してるからね!
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/20903
>>816
皮肉? それとも素直に?
斎藤も房臭いような。
>>815
> ところで影舞スレどこかしら。
ここでもいいんじゃないすか?

「使い物にならないほど遅い」って具体的にどう遅いのか知りたいところ。
1.8に上げてみるとか。
Stringの連結が速くなってるから変わるかも知れない。
>>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 では正しく動作しません。
って書いてあるから無理なのかも。
以前1.8で動かそうとしたけど、StringIOのまわりでなんかエラーになって先に進めなかった記憶が。>影舞
822名無しさん@お腹いっぱい。:03/07/28 17:40
preview5 age
もどるび 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
なんの時間だsage
BigDecimalが1.8.0リリースのネックになる予感・・・!!
ありゃだめだね。Rubyの一貫性ぶち壊しじゃん。
数学苦手な漏れには何を揉めてんだかサパーリわかんね。
>>828
厨に標準添付ライブラリを作らせたらあかんよ
なんのこといってんの?わりざん?
BigDecimal#divって何返すんだ?
RationalとComplexを組み込みにして/は除算、divは整除にすればいいのに。
んでもってPythonみたいにComplexのリテラルも用意する。
現状はint/int→intに拘ってるせいでやたら複雑にみえる。
結果をIntegerにする必要があるところではto_intなんぞを呼べばいいわけで。
834828:03/07/29 11:40
>>830
なぜ厨を止める力すらないのだろう、Rubyコミュニティ。
>>829
他のNumericとの整合性を志向しない「ヲレ」路線なとこ。

>>832
Float#/ 相当。ただし二番目の引数で計算結果の桁数を
指定できるところが違う。

>>833
それもいいのかも。後方互換性を無視できる勇気があれば、ね。
>>833
idivという提案もあるな。

>>834
厨とは言いすぎじゃあ。
あの仕様に拘りが強くて他との整合性より優先してるだけで。
…って結構困りもんだな。

> 仕様に拘りが強くて他との整合性より優先

割り算の話だけじゃないしね
一部のlispみたいに内部で分数にして持ったらどうだろう
>>838
普通の Ruby プログラマは、分数だとか精度の高い数だとかに興味はないと思うので、
そんなことされても (効率やパフォーマンス的に) うざったいだけのような気がする。
ruby発の別言語にした方がいい、と?
BigDecimalを標準ライブラリ化キボンした流れを知りたい。
MLのどのあたり?
842ド素人:03/07/29 23:43
BigDecimalっつーのがあると何が便利なんだ?
Rubyの整数は、ほぼ無限じゃなかったのか?
小数の扱いじゃないの?
>>841
[ruby-dev:16547]。当時の名前はBigFloat。
その前のメールでmatzが「いつの間にか」と述べているように、特に誰の
了解もなくいきなり入っていた。
なんであんなにレベルの低いコードが標準添付になれるのか。
マジで鬱だ…
>>845
そなの? これはよく読んでないんだが。
[ruby-talk:77420]
Kamasutraアルゴリズム禿しく実装きぼんぬ。
使わなきゃいいじゃん。ボイコットだボイコット。
BigTomorrow
rubyのリリースエンジニアリング(っていうの?)って絶対に間違っていると
思うなあ。
ruby-talk 77509 に激しく同意

と、ここでいってもしょうがないんだが。
>>850
絶対に間違っているというのは同感だが、「これがRubyのやり方だ」となると
まーそーゆーもんか、とも思わないでもない。
そう思わせちゃうあたりがマイナーたる所以なんだろうけどさ。

ところでリリースエンジニアリング担当氏はいずこへ?
previewあとふたつか。
>>851
> ところでリリースエンジニアリング担当氏はいずこへ?
いたっけ?

>>852
preview6が出たからあと一つ
リバースエンジニアリングって一体何のこと?
(言葉自体はもちろん知ってるよ)

ruby-talk 77509 って今読んだけど
「最近のpreviewはリリース間近とは思えないほどひどい。もうちょっと時間を取れ」ってことだよね
さて、どう料理しましょうか。
856ちんこ:03/07/31 20:00
rubyスクリプト上で
`rehash`
とか書いても、command not found: rehash
なんですけど、こういうbuiltin@tcshなコマンドを`foo`とかするのって、
どうすりゃええのん?
>>854
ネタだったらごめん。「リリース」エンジニアリングね。

>>856
そのスクリプトは tcsh から起動するもの?
だったら、tcsh の子供のそのスクリプト上でいくら `rehash` しても、
親の tcsh に rehash の効果を与えるのは無理ではないかと。
あぁリリースか。素で見まちがえた。
859ちんこ:03/07/31 20:32
>>857
サンクスコ。
そう、tcsh上で起動したスクリプトにおける話。
たとえば/usr/local/binに何らかの実行ファイルを置くようなスクリプトを書いた場合、
それをスクリプト実行中に反映させるようなことはできんのかな、と。
なんか全然rubyな話じゃ無いな。
>>853
異人さんが名乗り出たと聞いてるけど、名前を覚えられなかった。
BigDecimalは、もうしばらくRoughで揉んだほうがいいんじゃないかな。
>>861
同意。よく揉まれまくってから出直してね。
揉まれまくり (;´Д`)ハァハァ
巨乳は、もうしばらく手荒く揉んだほうがいいんじゃないかな。
[ruby-dev:21044]
> > ところで、自分が[ruby-dev:20959]で指摘した、BigDecimal#divmodの
> > バグはまだ直っていないみたいです。こちらは、修正をお願いできる
> > でしょうか。
> 仕様通りに動いているのがどうしてバグですか?
> (返事は結構です)
もっと言い方があるだろうに……

なんか、ネタでやってるとしか思えん。
MUAがどっちも Outlook なのが気になる。
説得力あること書いても効果が半減してしまっているような。
いっそのこと BigDecimal 削除したほうが解決はやそうだな…
>>867
マジで禿同。
頭冷やしてじっくり仕様検討し直してから入れる、の方が良いと思う。
あんな揉めてるの見たら、今入れたって使いたいと思うひとはいないのでは?
>>868
同じく。
つーか入れても速攻で仕様変わるべ。絶対。
このまま入るだろ。入れるなっていう人はいないし。
単なるヲチならまあいいけどほんとに入れて欲しくないならちゃんと文句いえよ
MLのBigDecimal関連を軽く読んでみたけど、難しくてよくわからん。
ただ、作者は、例えば 2 * "3" の結果は 6 になるべきだと考えてる所だけわかった。
これだけからしても、根本的な思想が別の言語の思想になっちゃってるから
回りといろいろ意見が合わないのかなぁと勝手に想像。
おいおい、どこにそんなこと書いてあった(藁
主な具体的な問題は div が BigDecimal 以外のクラスと
演算子の意味が違うことだが、そん事よりも
BigDecimal 作者の姿勢が
「他の事なんかシラネーヨ、数学的にはこっちの方が正しいはずなんだから
 漏れだけ譲歩するのは嫌だね、そっちが譲歩するか
 両方譲歩するかじゃないと、変更するつもりはネーヨ。氏ね糞」
ってな感じなところだろ。
[ruby-dev:20531] とかを見ると、 BigDecimal.new("2") * "3" は 6になってほしいらしいよ。

いずれにしろ自分が正しいと信じて疑わない姿勢が、ちょっと…
>>874 同意。
見てみた。確かに。
ruby は ruby 的な考え方、というか、既に標準的な実装があるのだから、
その流れに沿うように作ってくれれば良いのだけどねぇ。
なんか、変なところでつっかかってくる。
自分が欲しいだけのものは、自分だけで使えと。
斉藤ちゃん、ああまで言われたなら、もう fork するしかないっしょ。
CorrectBigDecimal とかなんか命名したら?

require 'correctbigdecimal'
BigDecimal = CorrectBigDecimal
>>877
[ruby-dev:20392]
>自分は勉強のために多倍長整数のライブラリを書いていまして

最初から、forkの準備はある程度できている?(w
>>877
Decimalで組込みとか。
原先生が参戦しますた!
「検討時間が不足ということで」ってんなら、
BigDecimal 自体を pending にすりゃいいのに。

あぁ、言っちゃいけない、でも言いたい、

  m a t z 必 死 だ な
8/4までにリリースすれば MACOS に入るんだっけ?
不要な物/事をいかに reject するかが、
オープンソースプロジェクトのリーダーの手腕の見せ所と言えるね。
強制的な方法でやると後で粘着がウザイし、まじでmatz必死だな。
ウザいながらもせっかくの協力だから
うまく生かす方向で、とか?
>>883
> 不要な物/事をいかに reject するかが、
> オープンソースプロジェクトのリーダーの手腕の見せ所と言えるね。
一歩間違えば協力者が寄り付かないプロジェクトになっちまうからね。
Gentoo Linux 誕生秘話
http://www-6.ibm.com/jp/developerworks/linux/010223/j_l-dist1.html

変人のあしらい方、これ重要。
# だが、今回は中途半端にコードのかける変人だからねぇ。
>>886
うーむ、そこの定義を見る限りでは、「変人」と呼ばれるのはむしろ
このスレでくだを巻いてる我々の方のような気も。
確かにそうかもしれん
ただし直接的な行動は全くないから
プロジェクトの進行には響かない......はずw
class BiqDecimal
def +(y,n=0) [y,n] end
end

x = BiqDecimal.new
p x + 1
p x.+(1)
p x.+(1,2)
遅れたけど
>>881
禿同。
斉藤ちゃん、まだ見放してなかったよ!
ん?全面戦争か?
これか。
ttp://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/21062?21033-21062

痛恨の一撃という感じだが…痛みを感じない敵もいるからな、
さてはて、あとはmatz次第といった感じだ。
894Seisei_Yamaguchi:03/08/02 02:28
Ruby流インタフェースも追加 ( 両方使える ) しないとダメ説 .
切り替えわシステムレベルで .
切り替え機構は永遠に未実装とか .
895894:03/08/02 02:35
いやインタフェースだけ揃っても駄目かスマソ
896894:03/08/02 02:43
ついでに連パピ .
せっかく作ってくれた事への敬意を形にする意味で
今回は入れておいて次回以降にまた考えればいいんじゃネーノ .
1.8.0 で入れておいて,速攻で次の 1.8.1 を出して、そこで削除etc..とか?
1.6 系から新しくなった最初のリリースだからなぁ。あんまり後々にいらぬ後方互換性
の問題を残さない方が良いと思う。別に,あとから追加で入れることはできるのだし。
matzは入れるって言うだろうな。
入れなかったら作者がスネてしまいそうだし。
作者が去ってもコードは残る。(w
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
こぱしげっちのページの時計アプレットを諸君はどう思うか。
>>901
URLクレクレ
いま、http://www.ruby-lang.org/ 落ちてますな。
ますなあ
>>893
だから fork しちゃいなって。

今は味方は少ないように見えても、1.8.0 がリリースされたら、
ruby-talk とかからも斉藤ちゃんと同じ意見を持つ人がたくさん出て来るんだから、
そのたびに「私はそう思って、もっとまともなライブラリを用意してます」って、
言えばいいんだから。

それを
10回繰り返すと・・・「RubyWay2(?)」に“こちらの方がまともなライブラリ”と紹介される
20回繰り返すと・・・ruby-talk からも「こっちの方を標準にすべきでは?」と意見が出る
30回繰り返すと・・・Matz が「そうかな?」と言い出す
んだから。
だれか[ruby-talk:77777]getしる!!!
グラフ処理と動的シュミレーション
ttp://www.tinyforest.gr.jp/memo/graph.html

さっぱり分かんねぇ。
こぱしげっちってその分野では偉人なのか?
忙しいというのを口実に対応を渋る態度が見え見えだしな。
今、標準として入れても、うまくメンテしていけねーべ。
というか、CPANみたいに拡張ライブラリが簡単にインストールできる方法があれば、
糞も味噌もなんでも標準配布に入れなくて済むんじゃないの?

なんとなく、そこらへんが間違っているような……。
>>910
それは違うと思う。
ちなみにCRANていう名前はRが使ってるから4649!
こぱしげ氏、matz氏の
> 最終的な判断の前に小林さんの意見をお伺いしたいと思います
に反応する気配がないね。
牛歩戦術ならぬ無歩戦術に出た模様。
まったく迷惑な奴だ。
無歩戦術なんかしてたら標準配布から外す理由としちゃ十分だろ。
>>915
そうそう。
Matz としては精一杯、こばしげ氏の立場を考えてああ書いているのに、
それでスネてる時点でもう終わってるような。
>>913
土日はメールを読まない/読めないということもありえるだろう。
今は金曜の夜から溜まりに溜まったメールを処理してるのかもしれんし。
とりあえず、祝リリース!
920名無しさん@お腹いっぱい。:03/08/04 20:04
1.8.0リリースage

ChangeLog:
For the changes before 1.8.0, see doc/ChangeLog-1.8.0

入ってませぬ。
>>920 それは1.8.1から追加されるのでは?(cvsにはすでにエントリがある)
>>921
単に入れ忘れじゃ。
チェック漏れだようわーん。
だからね、fork して、自分のライブラリとして出せって言うとるのに。
分かっとらんやっちゃなあ。


・・・聞いてないのは分かってるけどよー。
うわーん。ia64 なHPUXでコンパイルできなかった。
C言語とかぜんぜんわかんねーよ。
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倍使うための本 魔道編
>>925
エラーメッセージはってくれ。
>>926
ワロタがけっこう同意。
やっぱ unicode いじるには uconv なのかしらん?
標準ライブラリには採用されないのかなぁ。
>929同意。採用されないのはテーブルのサイズがでかいから?
1.6.8 から 1.8 でソースのサイズが二倍になったそうですが。
tkのサンプルに、同じ画像が二つずつ入ってるそうだ。
いろいろ理由はあったにせよ、今回のリリースはあまりにもテストが十分でなさすぎると思う。
正式リリースの直前まで標準ライブラリがはっきり決まらないなんて、異常だよ。
>>933
s/今回のリリースは/今回のリリースも/
shim まだぁ?
>>933
同意。
feature freeze したくないのは分かるし、
決まったときに出さないといつまでも出せないからそうしたんだろうけど、
昨日の時点で「このままの状態であと1ヶ月テストしてからリリースとします」って言って、
ブランチだけ切っちゃえば良かったんだ。

current そのままをリリースにしちゃうのはリスク大きすぎ。
>>936
リリースしてからブランチ切ること自体が変?
ところで、いつまでたってもRiteの開発に移行しないのはなぜ?
1.x系はこれ(1.8)で最後ってしたら何がまずい?
こばしげ無歩戦術、成功。
>>938
2.0 はかなり実装が変わる予定だから、互換性なくなりすぎるよ。
拡張ライブラリは間違いなく全滅するしな。
BigDecimal は floor が変だね。
BigDecimal('-0.5').floor が 1。
とりあえず ceil-1 に再定義しとくか...
>>938
次の開発版は1.9.0で、その結果の安定版として1.9.1を出す
という方針じゃなかったっけ?
んで2.0がRite(バイトコードインタプリタ)。

バイトコード化(?)以外にも、M17Nやら世代別GCやら
大きな改造がある予定(これらは拡張ライブラリへの
互換性の影響はないはず)なので、それらが1.9.1に
盛り込まれるのかな。
ほんとに、こぱしげは無責任というよりもあきれた奴だな。
緊急時にまったく意見せず、リリースされてから意見してやがる。
それだけじゃない。忙しいとかボランティアなんだから
と言って、そもそも自分にはメンテする責任はない
ということを示唆しようとしてる。

自作ライブラリが標準採用されることは
光栄なことだという感覚はないのかねー?
え、互換性なくなるの・・・?
というわけで、1.8.0 は unstable ということでよろしいでしょうか?

ってなチャチャはともかくとして、
今後のロードマップがまとめられているサイトってありますか?
>まぁ、今の形でもいいから使い
>たいという人がいるのは確かですから...

おまえだけだよっ

>「非互換性」が生じたとしても、それはどちらかが一方的
>に他方にすり寄るものではなく、その都度考慮されるもの
>であると信じます。

非互換性が増えるだけだ。
こいつぁ自分だけ都合の良い方向にしか考えてないのかね。

>>943
>そもそも自分にはメンテする責任はない
>ということを示唆しようとしてる

そうなら、おとなしく人様がくれたパッチあててりゃいいのに。
自分が内々に使ってるプログラム変更したくないからか、それもしないし。

ま、BigDecimal については、漏れは利用者としても全く関係ないのでsage
明示的に使わなければ大丈夫だよな
演算によって勝手に変換されたりしないよな

あとは、BigDecimalに合わせるために
他のが変更されたりしなければ
漏れも全く関係ないのでsage
>>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);
^^^^^^^^^^^^^^^^^^^^^^
>>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
>>949 curses.h が入ってないんと違うか?
>>951
もしそうなら、 ext/curses をスキップするようになっているべきでは?
>>949
これなんだっけ。ruby-coreかtalkで出てたのと同じやつじゃないかな。
ちと今見付からんのだけど、たしか修正方法も出てたような。
てぇか、直ってなかったんかい。
"unkf" って何の略ですか?
うんこふ。
>>954
u - nkf では?
universalと言う名のアメリカ式合理的文字セット符号化方式に対応したネットワーク漢字濾過装置
nethack のアイテムみたいだな。
959949:03/08/07 01:57
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/5521
これですかね。でも1999年って。。。
パスを指定すればいいのかな。
>>959
いや、もっと最近、1.8.0previewの話。
うろ覚えで悪いけど、_XOPEN_SOURCEが必要とかだったような気がする。

./configure CPPFLAGS=-D_XOPEN_SOURCE

でやってみて。
[ruby-talk:78400]によると、CFLAGS="-Ae" か CFLAGS="-Aa -D_HPUX_SOURCE"
でいけるって言ってるみたいな気がする。
962949: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以降はいらないとかかいてあるので。
963949: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

というエラーで止まります。よろしくおながいします。
>>964
とりあえず、スタックが小さすぎないか ulimit をチェック。
あと、使ってる cc とフラグを教えれ。
Cygwin上でruby-1.8.0の make には成功したけど、
eruby の make が通らない。エラーメッセージ、
環境などの情報は今手元にないんで、のちほど。
>>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 です.
>>967
> また,CFLAGS=-O2 です.

env CFLAGS=-O2 ./configure としていたのを, ./configure に変えてみました
が同じでした.
生のるびきちさん、みたよー、みたよー。
どこで?
LLS か?

LLS レポート&るびきち画像きぼん
こばしげ、こんどは安定版リリース後に互換性のない変更を始める。

- 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キボンヌ。
>>972
> puts BigDecimal("3.14").to_s("1F") # => 3.1 4

> 引数 n に正の整数が指定されたときは、少数点で分けられる左右部分を、それぞれ n 桁毎に空白で区切ります。
わけ分からん機能だ。
>>971
いたか? 気づかなかったな。
>>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'
>>964
それtalkなんかでもたまに報告があるようだけど。
デバッガから実行して再現できるなら、
stack_check()でbreakしてbacktraceきぼんぬ。
いんさいだーって何?
ゴッドサイダーなら知ってるけど?
Rubyの中の人などいない!
ダークカイザーなら知ってるけど?
昔アスキーが出してたRPGのインサイダーズなら知ってるけど?
昔三ッ矢が出してた飲料の三ッ矢サイダーなら知ってるけど?
BigDecimalはやっぱり標準にするには早すぎたと思うよ…
異議を唱えるのが遅すぎたね。
リリース間際でみんなアタフタしてて、つきあってられなかった。
ていうよりも、ああいう品質のものに異議を唱える人がずっといなかった事・
いつのまにかimportされていた事自体が問題では。
(結局knu氏が決断したのだったよね)
手を動かした奴の勝ち、ってこった。
>>983
そうして標準ライブラリは貧弱なままになる
ライブラリは rough/ とか作らずにどんどん開発バージョンに
いれればいいと思うよ
net の下を素人に優しくして欲すぃ。
ものすげえ初歩的なことだと思いますが、なぜ以下の結果が
得られるのかわかりません。どなたか教えてください。

$ ruby -e 'p (2.0 / 3) ** 20'
0.6666666667
-e:1: undefined method `**' for nil (NameError)

なぜ(2.0 / 3)がnilと扱われてしまうのでしょうか。
ruby-1.6.8を使っています。
>>989
(p(2.0 / 3)) ** 20
と見なされるから(1.6だと)。Kernel#pはnilを返す。
だから0.6666666667が先に出力されてる。

1.8だと p ((2.0 / 3) ** 20) と見なされる。
>990
素早い回答、ありがとうございます。納得できました。
次スレはRubyのFAQを語るスレッドで
>>987
こんなとこ来てんじゃねーよ
次スレ
rubyを語るスレッド 4
http://pc.2ch.net/test/read.cgi/unix/1060537252/

>>992
FAQを語りたきゃ勝手に語れ。
>>994
>>989はFAQだろヴォケ、と遠回しに言ってるんだろ>>992は。わかれ。
夏虫がいぱーい出てるなぁ!
なかなか埋まらない。
斉○って、うざい!
だれかLLSレポートきぼーん。
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。