On 16 December 2012 16:51, Stéphane Ducasse <[email protected]> wrote:
>> Beware, Range exists in other languages (python, etc..).
>> We should check if they correspond to a Smalltalk Interval or a
>> mathematical Interval.
>> If they correspond to a Smalltalk Interval, that will be one more
>> un-necessary trap.
>>
>> Note that we rarely use Interval, we just use #to: or #to:by:, so we
>> could as well rename Interval->Range.
>> And postpone creation of Mathematical Interval which is most likely
>> unused in kernel image.
>
>
> Why not? Now it would be good to move.
> but what I know is that igor wanted to have range intersection for the new 
> text model.
> Another question: who thinks that ruby look at Smalltalk when they take a 
> decision on their library?
> I do not think so. We can check what is around and **improve** our nice system

If you use Ruby for any length of time (and ignore most of the syntax)
you will quickly realise that Ruby _is_ Smalltalk in many fundamental
ways. It's just a pity Matz based its syntax on Perl (or so it seems).
Ruby = Smalltalk with rubbish syntax and awesome integration with
basic programmer tools and decent infrastructure.

frank

> Stef
>
>> 2012/12/16 Stéphane Ducasse <[email protected]>:
>>> I agree so we should introduce Range.
>>> Did not you or camillo started to have Range?
>>> It can be a really nice class.
>>>
>>> Stef
>>> On Dec 16, 2012, at 4:55 PM, Igor Stasenko wrote:
>>>
>>>> So, to my sense a behavior of Interval is overloaded..
>>>> it tries to be too many things at once:
>>>> - be an interval in math sense (which is infinite set if used for Real 
>>>> numbers)
>>>> - be a "collection" of numbers which you can enumerate (implies that
>>>> it is finite).
>>>>
>>>> to me, i would be much happier if we could have two different and
>>>> non-intersecting entities:
>>>>
>>>> - Enumeration. This one indeed can be used as a collection. i.e.
>>>> "give me all integer numbers lying between values A and B, count each
>>>> C-th number"
>>>>  Like that,
>>>>  (1 to: 1.5 by: 1) is enumeration which contains a single element.
>>>> and #last should be = 1
>>>>
>>>> - Interval (Range). A pure interval in math sense:  defines a Set of
>>>> numbers lying between numbers A and B, inclusive, where A <= B. Not
>>>> enumerable, therefore no 'step' variable, instead what it could have,
>>>> is flags to indicate whether interval endpoints included into interval
>>>> or not.. i.e. (a,b) vs [a,b] vs [a,b) vs (a,b].
>>>>
>>>> Not supporting enumeration (no #do: , no #add: no #at: etc). You can,
>>>> however intersect, merge or diff two intervals etc.. same operations
>>>> which you doing on sets (but that would require another entity -
>>>> interval set). And of course, you can test whether some number lies
>>>> within given interval or not.
>>>>
>>>> The reason i started this topic is because some code were using
>>>> 'range' for variables which holding intervals..
>>>> Now what you think is more appropriate protocol for something called
>>>> 'range', this:
>>>>
>>>> x := range first
>>>> y := range last
>>>>
>>>> or this:
>>>>
>>>> x := range start
>>>> y := range end
>>>>
>>>>
>>>> --
>>>> Best regards,
>>>> Igor Stasenko.
>>>>
>>>
>>>
>>
>
>

Reply via email to