Fixnumの割り算とか

ついついFixnumな値を割り算するところをそのまま a/b とか書いてしまって、「あれれ何この不思議ちゃんエラー」なこと数多だったのだけれど .to_fするのも面倒くさいし、とか思っていたらmathn.rbとか言うものの存在を知った。我ながら無知だ。

irb(main):001:0> 23/343
=> 0
irb(main):002:0> require "mathn"
=> true
irb(main):003:0> 23/343
=> (23/343)

おぉ、Rationalってるすげえなどうやってんだと思ってみてみたら

class Fixnum
  remove_method :/
  alias / quo
    :

どわー、rubyのダイナミックっぷりはやっぱ凄いや。何度目の当たりにしてもぶっ飛ぶ。
ついでに**もオーバーライドされていて

irb(main):007:0> (-1)**0.5
=> (6.12323399573677e-17+1.0i)

みたいなことができるがわあ誤差誤差。