[#8468] require で SEGV — ruby <g96p0935@...>
西本です。
[#8469] [PATCH] -s command line option — nobu.nakada@...
なかだです。
[#8507] mode_t in file.c — Katsuyuki Komatsu <komatsu@...>
小松です。
[#8530] Enumerable and rand — Koretsugu Daigoro <tmmcross@...>
これつぐです。
まつもと ゆきひろです
これつぐです。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
ごとけんです
これつぐです。
[#8565] interface declaretion — "Dai.K." <MAP2303@...>
[#8581] Re: [ruby-list:19228] Ruby 1.4.3 — Katsuyuki Komatsu <komatsu@...>
小松です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
小松です。
まつもと ゆきひろです
小松です。
[#8622] Win32API (Re: Ruby 1.4.3 binaries for Cygwin and DJGPP) — WATANABE Hirofumi <Hirofumi.Watanabe@...>
わたなべです.
有馬@FITECです。
よしだです
[#8623] [BUG?] core dump `ruby -r debug' — IWAMURO Motonori <iwa@...>
岩室@富士通です。
[#8635] slow gsub — WATANABE Hirofumi <Hirofumi.Watanabe@...>
わたなべです.
[#8645] urllib and httplib — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
なひです.
高橋征義です。
なひです.
まつもと ゆきひろです
なひです.
青山です。
なひです.
高橋征義です。
まつもと ゆきひろです
高橋征義です。
なひです.
西@九大です。
なかだです。
あおきです。
[#8650] [PATCH] Ruby/Tk — Koji Arai <JCA02266@...>
新井です。
新井です。
新井です。
新井です。
永井@知能.九工大です.
新井です。
永井@知能.九工大です.
新井です。
新井です。
[#8665] [mswin32] STDERR does not work during `_function. — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです.
金子です。
金子です。
[#8667] make symlinks around libruby.so in instruby.rb — akira yamada / やまだあきら <akira@...>
[#8692] [win] dir name — KANEKO Naoshi <wbs01621@...>
金子です。
小田@QNES です。
えぐち@エスアンドイー です。
小田@QNES です。
えぐち@エスアンドイー です。
なかだです。
小田@QNES です。
えぐち@エスアンドイー です。
小田@QNES です。
[#8705] [mswin32] 100% CPU usage when use sleep — Katsuyuki Komatsu <komatsu@...>
小松です。
まつもと ゆきひろです
小松です。
[#8722] [mswin32] Win32API — KANEKO Naoshi <wbs01621@...>
金子です。
小松です。
まつもと ゆきひろです
[#8741] Re: [ruby-list:19945] Re: array + empty string — Wakou Aoyama <wakou@...>
青山です。
まつもと ゆきひろです
青山です。
まつもと ゆきひろです
ごとけんです
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#8742] [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Kazunori NISHI <kazunori@...>
西@九大です。
まつもと ゆきひろです
西@九大です。
まつもと ゆきひろです
西@九大です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
西@九大です。
あおきです。議論も好き。
西@九大です。
あおきです。
まつもと ゆきひろです
有馬です。
knuです。
まつもと ゆきひろです
これつぐです。
knuです。
まつもと ゆきひろです
あおきです。
まつもと ゆきひろです
In message "[ruby-dev:8792] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num)"
まつもと ゆきひろです
ごとけんです
ごとけんです
なかだです。
ごとけんです
[ruby-dev:8537] Re: [REQ] {enumerable, integer, range}.rand
西@九大です。
From: matz@netlab.co.jp (Yukihiro Matsumoto)
> これは私とは違う結論ですね。私は「乱数の発生と違って、『要素
> のランダムな選択』は要素を含むコレクションオブジェクトと不可
> 分である。よって実装するならコレクションオブジェクトのメソッ
> ドであるべきである」というのが私の結論です。
その「ランダムな選択」と「ランダム性の発生源」(現時点では乱数)との関係
も不可分ですから、どちらが「より結び付きが強いか」という問題ですよね。
多分、どちらに意識を置くかの違いで、優劣は無いと思います。
* array(例えば)に対して、「ランダムな選択」を要求。
(実装上は、array 内部で「ランダム性の発生源」を呼ぶ)
* ランダム性の発生源に対して、「この中から選んで」と要求。
(実装上は、double dispatchで自分に戻ってくる)
# 後者は、例えば、機能や性能の違う複数の random generator の存在を意識
# したもので、現在の Ruby には適合しないかもしれない
> 身がそれをサポートしない限り、型によるoverloadはダブルディス
> パッチで実現できない限り OO 的に望ましい結果にはならないよう
同意します。私も実装上は double dispatch で行い、それ(random)を言語側
が組み込みで定義しておくものが Numeric/Range/Array、というのが本意です。
表現が足りませんでした、すいません。
で、質問なんですが、overload の具体的実現手段の1つとして double
dispatch があると理解していたのですが、これは正しいですか?
あと、ruby の組み込み関数(C言語?)で、double dispatch を実現する、とい
うのは難しかったりしますか?(ruby 等なら楽に書けるのはわかるのですが)
> # ディベートですか? 受けてたちます。^^;;;
いや、勝ち負けにこだわっている訳じゃないです。単に負けると悔しいだけで
す。(こだわってる)。ていうか、既に、興味の対象は既にまつもとさんの返事
(反論)に移ってたりして。。。こ、これが恋?
> のいずれの(あるいはもっと別の)意味であるかをそれだけでは
> 決められません。あまたの解釈の中からひとつに決定させるに
> は名前に決定力不足だと感じます。
はい。これまでの話を全て忘れて「array.random」を見直してみると、第一感
は「array.randomize!」な気がしてしまいました。確かに決定力不足ですね。
やっと、まつもとさんの「第一反駁」が理解できました。これが、常に懸念さ
れている「名前の問題」の本質ですか?
> おっと、Array#random は引っ込めたんでしたね。
ふふふ。必要とあらば、再提出しましょう。(磨きがかかったコウモリ)。
という事で、double dispatch 的には、やはり出さねばなりますまい。。。
(てことは、どうも最初は単なる overload を意図してたぽい)
> で、Kernel#rand(Numeric/Range/Array) については上述の理由で
> 賛成しません。
「名前が不適切」というのは理解できました。代案は見つかりませんが、強い
て書くなら random_get になりそうな。でも、それじゃつまらない(未定義語)。
どちらにしろ、これは解決可能な問題なので置いておくとして。
結局、Kernel#rand に賛成できない理由は何ですか?(反論付き肯定側最終弁
論堂々巡りバージョン'99師走)
(1) 関数(rand)内で型に拘束されるのが嫌だから(拡張性がない)。
⇒ 実装は double dispatch で。関数(rand)はその統一的な窓口として。
(よいなら、後は「名前の問題」だけ)
(2) そもそも UNIX的に、rand は乱数を連想...
⇒ 上位互換だからいーじゃん!(感情論)
(ダメなら、御破算)
これでどうでしょう。これでダメならもう僕は鳥になる。。。(なれよ)
------------------------------------------------------------------
九州大学大学院システム情報科学研究科 情報工学専攻 博士後期課程三年
西 和則 ( e-mail: kazunori@swlab.csce.kyushu-u.ac.jp )
------------------------------------------------------------------