From: Shin-ichiro HARA Date: 2001-07-24T11:25:22+09:00 Subject: [ruby-dev:14018] Re: to_int in mathn [Re: overwride method ] 原です。 私は、数学がらみのライブラリでは、require "mathn" してもしな くても動くように気をつけて書いています。そういうものだと思っ ています。が、普通のライブラリではそうもいかないですよね。 >まつもと ゆきひろです >今のRubyのモデルでは一時的に(ある特定のスコープで)動作を変え >ることはできません。普通に作るとスレッドで破綻するし。CLOSと >かだとfletを許すんですけど。これを許すことはモデルの再設計と >コアの全面書換を必要とするので、コストバランス的に妥協できな >いと思います。ごめんね。 別のアイデアですけど、あるスコープの中だけでリテラルの意味を 変えるってことはできないですかね。 Rational.environment do 1 #=> Rational.new(1, 1) Vector.environment do [1, 2] #=> Vector.new([Rational.new(1, 1), Rational.new(2, 1)]) end end これができると、require "mathn" する機会は少なくなって、たいて いの場合、require "rational" を使えば十分になると思うんです。 >mathn.rbでRational#to_intを定義するのでは妥協できませんか? 僕も妥協したらいいと思います。(^^;