class を作成する必要がNumberSet
あります。これは、まだ含まれていない数字のみを含めることができる、さまざまな種類の数字のコンテナーです。
class NumberSet
include Enumerable
def initialize
@arr=[]
end
def each (&block)
@arr.each do |member|
block.call (member)
end
end
def << number
@arr<<number if @arr.include?(number) == false
end
end
このコードは有理数を切り捨てます。たとえば、(22/7)
と等しくないでください(3/1)
。
mine=NumberSet.new
mine<<Rational(22/7)
# => [(3/1)]
mine<<3.0
# => nil
どうすればこれを修正できますか?