<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
David Goehrig wrote:
<blockquote
cite="mid:535227ab0906300337g2206df81g76fe8f2daa5633ec@mail.gmail.com"
type="cite">On Tue, Jun 30, 2009 at 12:22 AM, Michael van der Gulik <span
dir="ltr"><<a moz-do-not-send="true" href="mailto:mikevdg@gmail.com">mikevdg@gmail.com</a>></span>
wrote:<br>
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
</blockquote>
</div>
<div><br>
</div>
<div>I am implicitly stating that I expect anArbitraryObject will return a boolean when passed the message #someMethod.
This expectation has nothing to do with the implementation of
anArbitraryObject, or with the meaning of #someMethod, only in the
semantics of how it fits within the overall structure of the statement.</div>
<div><br>
</div>
<div>Similarly if I were to say something like:</div>
<div><br>
</div>
<div> ( anArbitraryObject + 1 ) < someLimit ifFalse:
anotherBlock</div>
</blockquote>
<br>
Taking < as an example, what do you say about these two fragments of
semantically equivalent code?<br>
<br>
anArbitraryObject < someLimit ifFalse: anotherBlock<br>
<br>
anArbitraryObject >= someLimit ifTrue: anotherBlock<br>
<br>
<br>
In the first case, anotherBlock is evaluated, and in the second it is
not. Making #doesNotUnderstand: return false cannot possibly "do what
you expect" because it will behave differently depending on how you
phrase your expectation. Check, and mate? :-)<br>
<br>
<br>
Cheers,<br>
Josh<br>
<br>
</body>
</html>