From: toyofuku / juice.or.jp
Subject: [ruby-math:00379] Re: coerce_rev
Date: Mon, 15 Jan 2001 22:18:17 +0900

るびきちです。

> [ruby-math:00005] に coerce の話の私なりのまとめを書きました。
読みました。
やはり演算子付きcoerceが欲しいところですね。

>   従来との互換性の問題と当時 coerce を必要とするような新しい
> クラスが作られていない時期で実用上の需要のないまま単なるお話
> として議論されそのうち立ち消えという感じだったと思います。
あっちゃー(^^;;
数学ライブラリを作るとかなりの数の『数クラス』ができてしまうもので。

ちょっと即興で思い付いたものとしては、

module Arithmetic
  def Integer_plus_Integer(x,y)
    ...
  end

  def Integer_plus_Float(x,y)
    ...
  end

  def Float_plus_Float(x,y)
    ...
  end

  alias :Float_plus_Integer :Integer_plus_Float
  
  def Interval_plus_Interval(x,y)# 区間演算
    ...
  end

  def Interval_plus_Integer(x,y)
    ...
  end
  
  alias :Interval_plus_Float :Interval_plus_Integer
  alias :Integer_plus_Interval :Interval_plus_Integer
  alias :Float_plus_Interval :Integer_plus_Interval
end

などと定義するだけでうまく動いてくれれば嬉しかったり。
(実際は拡張ライブラリなのであくまでシミュレート)
でもevalが必要になるかな(^^;;
いや、IDをいじってsendでどうにかなるかな。

るびきち☆
http://www.ruby-lang.org/~rubikitch