[#697] ++[Re: dylan [Re: swap values(Re: call by reference)]] —
けいじゅ@SHLジャパンです.
1 message
1996/10/01
[#869] Append Member — Kouki Higuchi <luke@...>
Please let me be a participate.
1 message
1996/10/20
[#895] sleep eternaly on BOW(Re: ruby 0.99.2-961023 available) — Shin-ichiro Hara <sinara@...>
原です。
6 messages
1996/10/24
[#906] [REQ]Get Strings!<3> GETS, SUB — Shin-ichiro Hara <sinara@...>
原です。
5 messages
1996/10/27
[#907] [REQ]Get Strings!<4> SPLIT — Shin-ichiro Hara <sinara@...>
原です。
6 messages
1996/10/27
[#920] bug report(each) — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
8 messages
1996/10/29
[#928] Re: hajimemashite — Itsuro Saito <saito@...>
斎藤@東大電子情報です.
9 messages
1996/10/29
[#938] ruby 0.99.3-961030 available — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです.
7 messages
1996/10/30
[#954] Rational — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
23 messages
1996/10/30
[#955] Re: Rational
— matz@... (Yukihiro Matsumoto)
1996/10/30
まつもと ゆきひろです.
[#968] Re: Rational
—
1996/10/31
けいじゅ@SHLジャパンです.
[#970] Re: Rational
— matz@... (Yukihiro Matsumoto)
1996/10/31
まつもと ゆきひろです.
[#956] Re: Rational[coerce(Re: ruby 0.99.3-961030 available) ] — Shin-ichiro Hara <sinara@...>
原です。
4 messages
1996/10/30
[#965] ruby-mode — Yasuo OHBA <jammy@...>
大庭@SHLJapanです.
6 messages
1996/10/31
[ruby-list:745] Re: ? for Object#extend
From:
matz@... (Yukihiro Matsumoto)
Date:
1996-10-04 05:00:20 UTC
List:
ruby-list #745
まつもと ゆきひろです.
In message "[ruby-list:724] Re: ? for Object#extend"
on 96/10/03, 石塚圭樹 <keiju@shljapan.co.jp> writes:
|
|けいじゅ@SHLジャパンです.
|ダイナミックリンクでも初期化関数が呼べるわけですから, いいんじゃないで
|すか?
でも,継承した時になんらかのメソッドが動くかというとそうでも
ないですしね.
# しかし,実は特異メソッドが定義された時には呼んでいる
こういうhookは嫌いではないんですけど.
|モジュールのクラス変数(モジュール変数?)に入れているわけですね.
そうです.姑息というのはこの辺にあります.
|インスタンスにextendする方法で問題になるのは, そのインスタンスでは[]=
|が使えなくなるか意味が変わってしまうというのがあります. だから, extend
|することによって, 元のクラスで定義されたメソッドが動作しなくなる可能性
|があるんですね(^^;;;
|
|そう言うことを考えると, wrapperの方が良いかも知れません.
Wrapperの問題はWrapperを介さずに元の配列を操作されちゃう可能
性を否定できないところなんですけど,まあちゃんと制限として明
記しておけば許されるかもしれませんね.
|>class SortedWrapper
|> def initialize(orig)
|> @cmp = lambda if defined? yield
|
|ここの文の意味が良く分かりません.
defined? yieldでイテレータとして呼ばれているかどうかが判定で
きます.iterator_p?と同じですね.
|この方法だと, extendする必要はなくなりますね.
ないですね.上述の問題以外は解決できていると思います.
|SortedWrapperは長いのでSortorと言うのはどうですか? この方法でためしに
|作ってみますね.
やってみてください.
|でも, インスタンス変数の件があるので、どうなんでしょうね... extendする
|モジュール側に制約がつくわけですね. まあ, そのぐらいの制約はあっても良
|いかなあ...
仕方ないと思います.今でもArrayのサブクラスを作ることができ
るのですが,例えばこれにインスタンス変数をアクセスするような
メソッドを含むモジュールをインクルードすることもできます.で,
実際にインスタンス変数にアクセスした時点で例外が発生するわけ
です.
|ところで, fixnumにもextendできるようになるのですか? これは何となく無理
|そうな気が...
むりです.
|こういうモジュールはどう思います? 今はrubyでこのモジュールをincludeで
|きそうなクラスは, Array, Stringぐらいですけど... あと, read onlyですが
|Dirもできるかな. あと, 例のSortorもこれがあるとだいぶ楽に使いやすいモ
|ジュールが実装できそうです.
Indexable(要素を整数で参照できる)やArrayLike(Indexableで,か
つ要素を置き換えられる)なモジュールも面白いとは思います.た
だ,今のrubyの使い方だとそういうのはクラスを作らず配列でやっ
ちゃう気が….
|無理すればIOもインクルード可能かなと思いますが, IOのばあいはeachが行単
|位で[]がchar単位になるので難しいかな... それよか, rubyでメモリマップ
|ドファイルを取り扱えるクラスを用意すればいいんですね. やはり, Thread対
|応の次はこれでしょう(^^;;;
メモリマップドファイルは昔から(前の会社にいるころから)いつか
やろうと思っているのですが,SysV系のIPCに弱いのでそのままに
なっています.
まつもと ゆきひろ /:|)
p.s.
英語版ドキュメントのweb版は新しくしました.tarでまとめたもの
もすぐに用意します.