I am probably stupid but this sounds crazy. Most people will have a pretty good idea of what an interval is from mathematics. Stating that it is a finite, countable progression from a start to a stop with a step is more precise and makes sense.
Now, [a,b] with b<a will seem wrong from this perspective. It could well be that Interval is (ab)used somewhere with b<a but is that a reason to allow this ? IMO, the specific cursor usage should have its own data structure… On 16 Dec 2012, at 11:04, Nicolas Cellier <[email protected]> wrote: > What Frank means is that Smalltalk Interval are countable (and most are > finite). > > However, the original usage of Interval was for Text editing, and an > Interval from 5 to: 4 means that the cursor is before (after?) > position 5. That's why Interval is a strange beast, not exactly > polymorphic to an Array of Number. Those two views have introduced a > number of unconsistencies in the library... > > Last thing, I don't recommend using Interval of Float, (1.5 to: 1.6 > by: 0.01), rather use Integer or Fraction. You never know where the > Float Interval really ends, it's progression is generally not > constant, and to:do: used to behaved differently than do: > > Nicolas > > 2012/12/16 Igor Stasenko <[email protected]>: >> On 16 December 2012 09:26, Frank Shearar <[email protected]> wrote: >>> On 16 December 2012 01:06, Igor Stasenko <[email protected]> wrote: >>>> On 15 December 2012 23:45, Chris Muller <[email protected]> wrote: >>>>>> and i always hitting the wall with my head again and again.. because >>>>>> there's no such protocol >>>>>> and instead (after opening browser and looking at class, i figuring >>>>>> that i should use #first/#last, but it is completely unintuitive to >>>>>> me).. >>>>> >>>>> Me too, when I was using what I knew would only ever need to be, >>>>> simply, an Interval. >>>>> >>>>> Later the complexity increased and it would be either a Interval or >>>>> Array of numbers. It was a transparent / painless improvement. After >>>>> gaining that appreciation, now I think of Intervals as just "efficient >>>>> Arrays" and think naturally to use #first / #last. >>>>> >>>> >>>> Well, my math background prevents me from thinking this way. >>>> Since in math, intervals are defined on sets of numbers. >>>> (like Real set).. you cannot treat it as array , simply because there >>>> is an infinite number >>>> of values inside any non-empty interval, and you cannot enumerate them. >>> >>> But it's a subset of the integers, not the reals! >>> >> what? >> then how you explain this: >> >> (1.5 to: 1.6 by: 0.01) collect: [:i | i ] >> >>> frank >>> >>>> -- >>>> Best regards, >>>> Igor Stasenko. >>>> >>> >> >> >> >> -- >> Best regards, >> Igor Stasenko. >> >
