On 9/20/07, Xavier Noria <fxn / hashref.com> wrote: > On Sep 20, 2007, at 5:39 PM, Rick DeNatale wrote: > > > On 9/20/07, Xavier Noria <fxn / hashref.com> wrote: > > > >> On the other hand note that the definition of Range does not imply > >> the collection is finite, given suitables #<=> and #succ a range can > >> represent an enumeration of the rationals in [0, 1]. > > > > True in theory, but, I wonder just how you would code succ so as to > > return the NEXT rational!? > > Of course that won't happen in practice, but since we were > speculating about a possible definition of length for ranges I > thought that comment was needed for the reply to be complete. > > The non-constructive argument goes like this (you say it is true so I > guess you already know this): > > Let f be a bijection between the rationals in the open interval (0, > 1) and N. Such a bijection exists because Q is numerable. For any f > (n) = q define q.succ to be f(n+1). For any given f(n) = q, f(m) = p > in (0, 1) define q <=> p iff n <=> m. > > I have seen explicit bijections between Q and N, I guess a > programmable .succ could be given. > > To complete the reasoning about the closed interval [0, 1], define 0 > <=> q and q <=> 1 to be -1 for any q in (0, 1), and define 0.succ to > be f(0). 1.succ can be any arbitrary value, when you compute the > length iterating over a collection max.succ is not used anyway. > > I've written that off the top of my head but I think it is correct. You lost me, so what's the rational which is the successor to 1/3? -- Rick DeNatale My blog on Ruby http://talklikeaduck.denhaven2.com/