[#18226] Ruby 本ってば、うれしいなー — Atsuko Yoshida <atsuko@...>
こんにちは〜。久しぶりです。あつこです。
[#18233] [book] blade.nagaokaut.ac.jp/ruby/ruby-list/ — Shin-ichiro Hara <sinara@...>
原です。
けいじゅ@日本ラショナルソフトウェアです.
原です。
これつぐです。
けいじゅ@日本ラショナルソフトウェアです.
これつぐです。
けいじゅ@日本ラショナルソフトウェアです.
原です。
[#18265] アクセス制御について — Tadashige Morii <m_tada@...>
森井です。
[#18293] [book] 新宿紀伊國屋売り上げ情報 — Noritsugu Nakamura <nnakamur@...>
[#18332] rubyTk の Tk は何がお勧めですか? — Sakae Kobayashi <sakae@...>
小林栄と申します。
[#18338] オブジェクトの非同一性判定 — Ayanosuke <aya@...>
綾乃介です。
いわおかです。
綾乃介です。
[#18348] Is there ext/GD for gd-1.7.x — "OGAWA, Hiroshi Santa" <santa@...>
Ruby本買って目から鱗を落としながら読んでいます。
[#18361] Proc in a loop — ttate@...
立石です。
[#18374] regular pattern — Katsuya Tanaka <tanaka@...>
まつもと ゆきひろです
[#18408] [BUG] debug.rb(?) — Chikanaga Tomoyuki <hekitou@...>
近永です。
[#18420] bindrv on oracle — 中村暁史 Nakamura Akifumi <BXQ04723@...>
[#18447] mswin32 でのファイル名の大 / 小文字 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#18467] Array doesn't include Comparable — kjana@... (YANAGAWA Kazuhisa)
Array#<=> が定義されてるのに not Array < Comparable なのは何か理由があ
[#18476] paramclass — gotoken@... (GOTO Kentaro)
ごとけんです
[#18485] Linux magazine 12/1999 — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
なひです.
[#18494] `make test' failure on Cygwin build w/ --enable-shared — Mimpei MORISHITA <mimpei@...>
森下 @ CAC と申します。
[#18501] 関数 ` の動作 — Keisuke CHIBA <chiba@...>
ちばと申します.
[#18517] 自分の IP を獲得する方法 — Suguru Kakishita <kakky@...>
柿下です
[#18526] アイコンコンテスト(ファイル用) — Hoshino Hitoshi <zin@...>
星野(Zin)と申します。
[#18533] cover animal for Ruby book — Koretsugu Daigoro <tmmcross@...>
これつぐです。
[#18539] [book] $*, etc. — Yasuhiro Fukuma <yasuf@...>
福間@福岡 です。
ごとけんです
At Mon, 15 Nov 1999 17:49:27 +0900,
ごとけんです
小林です。
[#18545] 変数の型チェック — "Hideaki Takata" <hideakit@...3.dion.ne.jp>
高田です。
[#18580] — tokoma@... (中川 誠)
中川です。
もとの質問のかたとは別の中川です。
中川です。
中川です。長文で失礼します。
中川です。
まつもと ゆきひろです
中川です。
えぐち@エスアンドイー です。
中川です。
えぐち@エスアンドイー です。
中川です。
えぐち@エスアンドイー です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
中川です。
えぐち@エスアンドイー です。
中川です。
えぐち@エスアンドイー です。
中川です。
えぐち@エスアンドイー です。
中川です。
えぐち@エスアンドイー です。
[#18582] Regexp source — Kazuhiro Nishiyama <nishiyama@...1.tiki.ne.jp>
こんばんは、ZnZです。
新井です。
[#18584] [REQ] [].grep(pat) #=> [] — gotoken@... (GOTO Kentaro)
ごとけんです
立石です。
[#18603] coding style — Shugo Maeda <shugo@...>
前田です。
[#18608] swigruby-0.3 — Masaki Fukushima <fukusima@...>
福嶋です。
[#18632] header output in eruby — TAKEUCHi Kahori <take-k@...>
こんにちは、たけうちと申します。
[#18637] constant? — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
わたなべです.
もりきゅうです。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
まつもと ゆきひろです
あおきです。
[#18638] fibonacci — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
[#18666] FileTest on NT — Keisuke CHIBA <chiba@...>
ちばと申します.
[#18668] rand — Ito Kazumitsu <ito@...>
伊藤と申します。
[#18687] Re: header output in eruby — TAKEUCHi Kahori (竹内かほり) <take-k@...>
たけうちです。
[#18709] ADO にて datetime 型の取得 — Takashi SHIODA <tsio@...>
塩田です。
助田です.
オレンジソフト塩田です。
助田です.
わたなべです.
なひです.
[#18712] Re: header output in eruby — TAKEUCHi Kahori <take-k@...>
たけうちです。
なひです.
まつもと ゆきひろです
まつもと ゆきひろです
なひです.
[#18741] Re: Why Mix-in? (Re: [book] $*, etc.) — Toyofuku <toyofuku@...>
豊福です。
まつもと ゆきひろです
[#18773] [Q] mod_ruby を使用したスクリプトについて — Yamada Kenji <kyamada@...>
[#18788] super — Kazuhiro Nishiyama <nishiyama@...1.tiki.ne.jp>
こんばんは、ZnZです。
[#18801] Re: super — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。ちょいと長文。
[#18807] protected なメソッドの再定義 — YAMASHITA Junji (山下 純司) <ys_jyunji@...>
山下 純司です。
[#18830] mod_ruby-0.1.4 — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
In message "[ruby-list:18830] mod_ruby-0.1.4"
高橋征義です。
なひです.
高橋です。
[#18833] delete array member inside each block — Kikutani Makoto <kikutani@...>
たとえば、「整数の配列の偶数メンバーだけ消す」みたいのは
[#18852] Re: Why Mix-in? (Re: [book] $*, etc.) — Toyofuku <toyofuku@...>
豊福です。
[#18853] initializer polymorphism? — Takeyuki Watadani <watadani@...>
渡谷といいます。
In message "[ruby-list:18853] initializer polymorphism?"
渡谷です。すばやい回答ありがとうございます。
ごとけんです
福嶋です。
ごとけんです
石橋秀仁です。無用の情報です。
立石です。
[#18868] Singleton の instance が複数になることがある — Kazuhiro Nishiyama <nishiyama@...1.tiki.ne.jp>
こんばんは、ZnZです。
[#18896] Database and Object Oriented Programming — Akihiro Yamauchi <aygoofy@...>
こんばんは。
[#18911] Re: eRuby 変換後の無駄 (?) な改行 — TAKEUCHi Kahori <take-k@...>
たけうちです。
松尾です。
前田です。
こんばんは、ZnZです。
前田です。
[#18914] Ruby standard GUI framework? — Hideto ISHIBASHI <s34204@...>
石橋秀仁です。
石橋秀仁です。
石橋秀仁です。
石橋秀仁です。
田中@ISASです。ruby-listの方は初めてです。よろしくおねがいします。
たかたです。
石橋秀仁です。
石橋秀仁%オープンソース原理主義者です。
In message <19991206121518W.s34204@vip.cis.kurume-nct.ac.jp>
[#18941] ruby-1.4.2 for Human68k について — IWATSUKI Hiroyuki <don@...>
はじめまして、岩月と申します。
[#18948] 他言語との比較 — とみたまさひろ <tommy@...>
とみたです。
[#18961] or と || の違い — Ayanosuke <aya@...>
館林と申します。
川戸と申します。はじめまして。
[#18994] ftplib で日付の詳細な list を得たい — Hiroshi Saito <HiroshiSaito@...>
こんにちは、サイトウです。
[ruby-list:18871] Re: Why Mix-in? (Re: [book] $*, etc.)
まつもと ゆきひろです
In message "[ruby-list:18852] Re: Why Mix-in? (Re: [book] $*, etc.)"
on 99/11/23, Toyofuku <toyofuku@juice.or.jp> writes:
|> Ruby本、p.175図4-5と、p.178図4-9の周辺ではいかが?
|
| ダメです。:-)
そうですか。
|というか。多重継承も Mix-in も使ったことないので
|実感がわきません。
うーん、「使ったこと無いんで実感がわかない」んですから、使っ
てみていただかないことにはどのような説明も無効のように思いま
す。やっぱり経験によって学んでいただかないと。:-)
ともあれ、まず最初に理解していただきたいのはMix-inは多重継承
のサブセットだと言うことです。つまり、「多重継承にできないこ
とがMix-inにできる」というのではないということです。逆に「多
重継承ではまずい設計ができてしまう可能性があるが、Mix-inが強
制されればそれはできない(まずい設計になりにくい)」ということ
ですね。引き算の発想。
gotoであらゆる制御構造が構成できるが現代の言語の多くにgotoが
採用されていないようなものですね。
|どういう流れでこう出力されるのかよくわかって
|ないのですが多重継承にはこの仕掛は入れられ
|ないのでしょうか。またこの仕掛が入れている
|ことによる Mix-in のデメリットはないので
|しょうか。
仕掛けそのものは不可能ではないです、つーか、まったくおんなじ
やり方が可能です。繰り返しますがMix-inは多重継承のサブセット
ですから。が、多重継承はクラス関係の任意のDirected Acyclic
Graph構造を許しますから、この仕掛けが直感に沿う保証はどこに
もありません。一方、単純継承+Mix-inはそのかなり小さなサブセッ
トですので、直感に沿わない可能性がかなり低いです。
Mix-inにおけるこの仕掛けのデメリットってのは思い付きませんね。
あるのかもしれませんが。
| 「複数回実行」以外の「クラスの挙動が予想しに
|くくなる」具体例とそれを Mix-in で書いたときの
|例の比較などもあるともっとぴんとくると思います。
うーん、実はかなり深いクラス階層が構成されないとこの問題は発
生しないのですが、この問題が発生するような深いクラス階層は、
ほとんどの場合そもそも問題のあるクラス設計ですから、Mix-inに
よって「クラスの挙動が予想しにくくなる具体例」ってのはなかな
か作りにくいんですね。
ちょっと無理矢理な例ですが
Window
TitledWindow
ShadowedWindow
TitledShadowedWindow
TerminalWindow
TitledTerminalWindow
ShadowedTerminalWindow
TitledShadowedTerminalWindow
というクラス階層を、Mix-inを使わないで
Window<Object
TitledWindow<Window
ShadowedWindow<Window
TitledShadowedWindow<TitledWindow,ShadowedWindow
TerminalWindow<Window
TitledTerminalWindow<TitledWindow,TerminalWindow
ShadowedTerminalWindow<ShadowedWindow,TerminalWindow
TitledShadowedTerminalWindow<TitledTerminalWindow,ShadowedTerminalWindow
と設計するのと、Mix-inを使って
Window<Object
Titled(モジュール)
Shadowed(モジュール)
TitledWindow<Window; include Titled
ShadowedWindow<Window; include Shadowed
TitledShadowedWindow<Window; include Titled, Shadowed
TerminalWindow<Window
TitledTerminalWindow<TerminalWindow; include Titled
ShadowedTerminalWindow<TerminalWindow; include Shadowed
TitledShadowedTerminalWindow<TerminalWindow; include Titled, Shadowed
と設計するのとどっちが良いかというような感じです。伝わるかな。
上の例でクラス図書いてみると良いかも。
「良い」というのは客観的に示せないのでちょっとつらいですけど。
| それとクジラの Mix-in の例ですが、哺乳類を主
|に、海棲を従に考えていると思うのですが、別の
|ケースで哺乳類を従に考えることもあるかもしれない
|から module Mammalia にしておこうというように
|何でも module になってしまわないんでしょうか。
それは見方の問題(解決すべき問題のとらえ方)ですから、そうする
のが好ましいと思えばそうすれば良いと思います。が、それで使い
やすいかどうかはまた別の問題なので、結局はバランスのとれたと
ころで収束するのではないかと思います、普通は。
まつもと ゆきひろ /:|)