[squeak-dev] Re: intersect: when intsersects: is false
Eliot Miranda
eliot.miranda at gmail.com
Sun Jun 20 19:18:10 UTC 2010
On Sun, Jun 20, 2010 at 12:02 PM, Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com> wrote:
> 2010/6/20 Louis LaBrunda <Lou at keystone-software.com>:
> > On Sun, 20 Jun 2010 11:07:23 +0200, Joachim Geidel
> > <joachim.geidel at onlinehome.de> wrote:
> >
> >>snip...
> >>One could just
> >>leave it as it is, because the precondition for answering a "correct"
> >>rectangle is that the receiver and the argument intersect. If they don't,
> the
> >>answer is undefined, which means that whatever is answered is correct in
> a
> >>mathematical sense.
> >>snip...
> >
> > I urge some caution here. If "whatever is answered is correct in a
> > mathematical sense" is true then returning any rectangle like (100 at 100)
> > corner: (150 at 150) would be correct, clearly that is not the case. In
> > Smalltalk, nil is undefined, nil is probably the "correct" answer.
>
> Yes, this is tempting.
> However from a pragmatic point of view that would mean that:
> - either every call must be protected with an intersects: test or (...
> intersect ...) ifNil: [...]
> - or UndefinedObject must understand Rectangle protocol
> Answering an empty rectangle seems more simple with this respect.
>
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.
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™.
best
Eliot
> Nicolas
>
> > -----------------------------------------------------------
> > Louis LaBrunda
> > Keystone Software Corp.
> > SkypeMe callto://PhotonDemon
> > mailto:Lou at Keystone-Software.com http://www.Keystone-Software.com
> >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100620/296bd6c1/attachment.htm
More information about the Squeak-dev
mailing list
|