On 27 September 2010 13:34, Igor Stasenko <[email protected]> wrote:
> On 27 September 2010 12:51, Johan Brichau <[email protected]> wrote:
>>
>> On 27 Sep 2010, at 11:28, Igor Stasenko wrote:
>>
>>> On 27 September 2010 11:54, Johan Brichau <[email protected]> wrote:
>>>>
>>>> On 27 Sep 2010, at 10:38, Lukas Renggli wrote:
>>>>
>>>>>> Am I wrong?
>>>>>
>>>>> Yes, almost always one should probably use #= instead of #==.
>>>>
>>>> I will add that to the exercise :-)
>>>> The exercise actually makes students aware of the difference between 
>>>> strings and symbols (which should be pointer-equal)
>>>>
>>>
>>> I think you can avoid using 'equal' word when describing a #== comparison.
>>> It can be explained as 'test whether comparands are same object or not'
>>> while #= is test whether two objects equal or not.
>>
>> Yes, this is exactly what the exercise is doing.
>> I want them to be aware that equal _symbols_ are the same objects, but that 
>> equal _strings_ are not, which is why I let them evaluate:
>>
>> a := #foobar.
>> b := #foobar.
>> a == b.
>>
>> a := 'foobar'.
>> b := 'foobar'.
>> a == b
>>
>> The problem is that evaluating the second snippet also yields true in 
>> Pharo/Squeak, so I cannot illustrate it using these snippets (which works 
>> fine in Visualworks, btw).
>>
>> Yes, this is a compiler optimization and, yes, people should use #= instead 
>> of #== normally. But imho the optimization yields a wrong semantics, which 
>> is why I posted the email.
>>
>> I have absolutely no clue if it can be changed (I am not familiar with the 
>> compiler implementation *at all*), but I would be happy to look over the 
>> shoulder of an experienced compiler hacker during the next sprint to learn 
>> ;-)
>>
> Why waiting for sprint?
>
> Implement
>
> String>>literalEqueal: anObject
>
oops. sorry for typo , a right selector is #literalEqual:

>  ^ self == anObject
>
> and then you have
> 'aaa' == 'aaa'  -> false
>
> :)
>
>> cheers
>> Johan
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>



-- 
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to