From: MAEDA Shugo Date: 1998-12-14T22:50:23+09:00 Subject: [ruby-dev:3809] Re: List() 前田です。 In message "[ruby-dev:3793] Re: List()" Shin-ichiro Hara wrote: > そこを私はそうは思わないです。で、この感じ方の差は [key, self[key]] > を見たとき「あ、Array オブジェクトを送ろうとしている。」と思って > しまう私と「あ、Array プロトコルで key, self[key] を送ろうとし > ている」と感じる前田さんの差なんですね。これはArrayオブジェクトと > Arrayプロトコルは全く同じ物であるという事実と yield(1, 2) が実は > yield([1, 2]) と全く同じであるという事から、二つの矛盾が一つの円 > 環をなしているわけです。sqrt(z) の作るリーマン面の様に。ほんまか > いな:-)。それで話がかみ合っていて同時にかみ合わない。(^^; この場合、Arrayオブジェクトを送るという行為が「一つの値としてArrayオブ ジェクトを送る」という記述のもとでは意図的行為ではないことが問題なわけ ですね。 ちょうど鋸で板を挽くという行為が「鋸でキーキー音をたてて隣人を悩ませる」 という記述のもとでは意図的行為と見倣されない場合のように。 > > > 変だなあ。私は書き直す必要があるライブラリは殆どないと思うのです > > > が、例えばどんな例がありますか?もちろんコンパイルし直す必要はあ > > > るでしょうが。:-) > > > > 少なくとも、Hash#eachをyield(key, val)に書き直さないと、 > > > > module Enumerable > > def each_with_index2 > > i = 0 > > each { |*x| > > yield(*(x + i) > > i += 1 > > } > > end > > end > > > > が期待通りに動かないと思います。 > > そうです。 > > > これをレアケースだから問題ないとすると、そもそもモデル変更の > > 必然性が疑われてしまいますよね? > > ここも同じ反論の繰り返しになりそう。ちょっと控えます。(^^; 僕の見解としては、これがレアケースだから問題ないということであれば、 現状の仕様で十分という結論になるような気がするんですが(^^; > なるほどぅっ。問題の答えではないですが100点満点です。(^^) > やっと前田さんの意図するところが理解できました。 やったー:-) ありがとうございます。 # でも卒業要件単位に数えられないのがくやしい(^^; > それでは前田さんは結局どういう仕様が望ましいと考えているのです > か?現実的な線で、すなわち、論理がすっきりしていること、互換性、 > matz 氏の性格:-) などを総合的に考えて、ベストは何でしょうか。 ええと、 > (1)現状のまま > (2)現状のまま+若干の each の修正など > (3)[ruby-dev:3704]の様に [ ] のラップを自動化する あれ、原さんの案は選択肢に入ってないのですか?(^^; Hash#eachなどをyield(key, val)のように書き直すのが前提で、原さんの 案を採用というのが現実的かなと思ったのですが。 > > P.S. ちなみにこんな時間まで起きてるのは卒論を来週先生に見せなければ、 > > いけないからで、Rubyで遊んでたわけではないです:-( > > # なのに、こんなメールを書いてていいのだろうか。 > > 痛いほど状況がわかるなあ。(^^) 「書けてるところまでいいから」と言われたのですが、この発話は 「まさか全然書けてないってことはないよね?」ということを含意 しているように思われます(^^; -- 前田 修吾 (mailto:shugo@aianet.ne.jp)