On 17 December 2012 07:28, Frank Shearar <[email protected]> wrote:
> 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.

I should add: with that last clause I'm not trying to dismiss Pharo's
and Squeak's massive improvement in infrastructure. It's just that
it's nowhere near as slick as in Ruby.

frank

> 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