<br><br><div class="gmail_quote">On Sun, Jun 20, 2010 at 12:02 PM, Nicolas Cellier <span dir="ltr"><<a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
2010/6/20 Louis LaBrunda <<a href="mailto:Lou@keystone-software.com">Lou@keystone-software.com</a>>:<br>
> On Sun, 20 Jun 2010 11:07:23 +0200, Joachim Geidel<br>
<div class="im">> <<a href="mailto:joachim.geidel@onlinehome.de">joachim.geidel@onlinehome.de</a>> wrote:<br>
><br>
</div>>>snip...<br>
>>One could just<br>
>>leave it as it is, because the precondition for answering a "correct"<br>
>>rectangle is that the receiver and the argument intersect. If they don't, the<br>
>>answer is undefined, which means that whatever is answered is correct in a<br>
>>mathematical sense.<br>
>>snip...<br>
><br>
> I urge some caution here. If "whatever is answered is correct in a<br>
> mathematical sense" is true then returning any rectangle like (100@100)<br>
> corner: (150@150) would be correct, clearly that is not the case. In<br>
> Smalltalk, nil is undefined, nil is probably the "correct" answer.<br>
<br>
Yes, this is tempting.<br>
However from a pragmatic point of view that would mean that:<br>
- either every call must be protected with an intersects: test or (...<br>
intersect ...) ifNil: [...]<br>
- or UndefinedObject must understand Rectangle protocol<br>
Answering an empty rectangle seems more simple with this respect.<br></blockquote><div><br></div><div>Tempting but mad. It will break lots of code. Instead, simply use a different selector. For example, intersection: is used by Collection, Matrix and Timespan, all of which have different semantics, so the argument that overloading Collection>>intersection: and Rectangle>>intersection: doesn't hold; intersection: is already overloaded.</div>
<div><br></div><div>Recently I've noticed that someone changed the semantics Integer>>hex in Squeak from 38 to 4.1 for no good reason. There were plenty of other selectors that could have been used for the new functionality (i.e. printing without a leading 16r). This kind of careless breaking of backwards-compatibility is an entirely avoidable really bad thing<span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 12px; ">™</span>.</div>
<div><br></div><div>best</div><div>Eliot</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Nicolas<br>
<br>
> -----------------------------------------------------------<br>
> Louis LaBrunda<br>
> Keystone Software Corp.<br>
> SkypeMe callto://PhotonDemon<br>
> mailto:<a href="mailto:Lou@Keystone-Software.com">Lou@Keystone-Software.com</a> <a href="http://www.Keystone-Software.com" target="_blank">http://www.Keystone-Software.com</a><br>
><br>
><br>
><br>
<br>
</blockquote></div><br>