[#19449] new keyword once — "K.Kosako" <kosako@...>
String#indexにKarp-Rabinアルゴリズムを導入しても、それほど速くならないのは、
[#19457] equality between "a" and Exception.new("a") — Tanaka Akira <akr@...17n.org>
ふと気がついたのですが、
まつもと ゆきひろです
In article <1044245817.592933.31973.nullmailer@picachu.netlab.jp>,
In article <1044245817.592933.31973.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1044329220.257740.28127.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1044331431.138035.28173.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1044332948.099873.28206.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1044338964.502066.28474.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
まつもと ゆきひろです
さらに気が付いたのですが、
まつもと ゆきひろです
あー、言葉が足りなかったことに気がつきました。
まつもと ゆきひろです
[#19463] Re: [ruby-cvs] ruby: * re.c (rb_memsearch): algolithm body of String#index. — "Akinori MUSHA" <knu@...>
At Mon, 3 Feb 2003 05:34:15 +0000,
[#19494] [Oniguruma] Version 1.7 — "K.Kosako" <kosako@...>
ftp.ruby-lang.orgに、onigd20030204.tar.gzを置きました。
[#19498] cpp in mkmf (Re: Problems building mysql ruby 2.4.4 on 1.8) — nobu.nakada@...
なかだです。
[#19510] define_method+super causes replacing self — Minero Aoki <aamine@...>
あおきです。
[#19514] [Oniguruma] Version 1.7.1 — "K.Kosako" <kosako@...>
ftp.ruby-lang.orgに、onigd20030207.tar.gzを置きました。
MoonWolfです。
MoonWolfです。
[#19539] FileUtils.pwd — Tanaka Akira <akr@...17n.org>
ふと気が付いたのですが、ChangeLog の
[#19548] [PATCH] file.c for (PR#389) and (PR#390) — nobu.nakada@...
なかだです。
まつもと ゆきひろです
From: nobu.nakada@nifty.ne.jp
なかだです。
From: nobu.nakada@nifty.ne.jp
From: pegacorn@jcom.home.ne.jp
[#19562] Fw: Ruby 1.8.0 bugs — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
MoonWolfです。
[#19578] target host type と RUBY_PLATFORM — pegacorn@...
cygwin 環境で
まつもと ゆきひろです
From: matz@ruby-lang.org (Yukihiro Matsumoto)
まつもと ゆきひろです
From: matz@ruby-lang.org (Yukihiro Matsumoto)
まつもと ゆきひろです
[#19603] 1.6.8でprotected/privateなメソッドがスコープ外から見えてしまう — NISHI Takao <zophos@...9.com>
にし@おかやまです。
[#19617] module A::B — "K.Kosako" <kosako@...>
現在の実装で、class A::Bの場合に、Aをcref環境に積まないのは、
[#19626] Re: [ruby-cvs] ruby: * eval.c (rb_thread_remove): thread may die in the process of — nobu.nakada@...
なかだです。
[#19638] [Oniguruma] Version 1.8.0 — "K.Kosako" <kosako@...>
ftp.ruby-lang.orgに、onigd20030222.tar.gzを置きました。
[#19648] Re: SEGV at search_method in eval.c (PR#400) — nobu.nakada@...
なかだです。
[#19655] Fw: Debugger Not Working — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#19665] Custom node — Shinya Hayakawa <tetryl@...>
はじめまして。早川と申します。
[#19668] File.chomp — Shin-ichiro HARA <sinara@...>
原です。
なかだです。
こんにちは、なかむら(う)です。
わたなべです。
[ruby-dev:19558] Re: compare between String and Exception
In article <1045117653.309213.10735.nullmailer@picachu.netlab.jp>,
matz@ruby-lang.org (Yukihiro Matsumoto) writes:
> うーん、==と違って > などや <=> はすべてのオブジェクトで定義
> されていないので「同様の仕掛け」でうまくいく自信がありません。
> 「似たような」だと可能なものもあるかもしれませんが、すぐには
> 思いつきません。
定義されてなかったら両方とも例外になるということを想定しています。
つまり、String#<=> で、引数 arg が to_str を持っていてかつ T_STRING で
ない場合には単に -(arg <=> self) みたいな感じの評価を行い、その <=> の
呼び出しが例外になったらそのまま例外にするというわけですが。
どんなもんでしょう?
ちなみに、Pathname で、いきがけ順の順序を導入しようと思ったんですが、
String と比較不能にできないかなぁ、と思ったのがきっかけです。
> あと、現在、Comparableで定義されている比較演算子が比較が成立
> しない場合に偽を返すのは仕様のつもりです。この仕様が(対称性
> の観点から)妥当でないのではないかという議論は歓迎します。
えーと、確認ですが、「Comparableで定義されている比較演算子」ってのは <
とかですよね。で、「比較が成立しない」ってのは <=> が nil を返すことで
すよね。さらに、「偽」ってのは(少なくとも現時点の実装としては) false
のことですね。で、偽を例外にするのはどうかという話ですよね。
まぁ、とりあえず false よりは nil のほうが区別できるぶんましなんじゃな
いかという気はします。どっちも偽だから互換性へのインパクトは最小限だし。
さて、それを例外にすべきかというと... どうでしょうね。
たしかに、レシーバが < などを持っていない場合には偽を返すことができな
いので、対称性を保つためには Comparable#< などでも偽よりは例外のほうが
適切なのかもしれません。でも、Comparable#< で NoMethodError を出すのは
変なので、例外の種類は変わりますよねぇ。
... あー、Comparable#< には nil の検査が入ってないみたいです。
% ruby -e '
class C
include Comparable
def <=>(arg) nil end
end
p C.new < nil'
-e:6:in `<': undefined method `>' for nil (NoMethodError)
from -e:6
あと、非対称なのはまだまだありそうです。
% ruby -e 'p 1 <=> []'
nil
% ruby -e 'p [] <=> 1'
-e:1:in `<=>': cannot convert Fixnum into Array (TypeError)
from -e:1
% ruby -e 'p 1 <=> Time.now'
nil
% ruby -e 'p Time.now <=> 1'
1
--
[田中 哲][たなか あきら][Tanaka Akira]