From: ara.t.howard@... Date: 2007-03-14T22:59:12+09:00 Subject: Re: Nil Comparable On Wed, 14 Mar 2007, Trans wrote: > Does anyone see anything problematic about this? > > class NilClass > > include Comparable > > def <=>(x) > x.nil? ? 0 : -1 > end > > def succ; nil; end > > end > > It seems benign enough, and can be used to represent "always before". > For instance, in Rake there is a class called EarlyTime: "EarlyTime is > a fake timestamp that occurs before any other time value." And that's > all that it does. If NilClass were comparable per the above then > EarlyTime would not be needed. it could mask errors like [42, nil].sort depending on the order of comparison it may or may not work since we might get 42.send '<=>', nil or nil.send '<=>', 42 so it's a bit different in that it's weakly typed where as the EarlyTime class is strongly typed - it'll only compare with other times still - it __is__ handy. if you search the archives i've suggeted that -Infinity and Infinity have these kinds of properties wrst numerics a few times. cheers. -a -- be kind whenever possible... it is always possible. - the dalai lama