En Fri, 03 Aug 2007 11:56:07 -0300, Roel Schroeven  
<[EMAIL PROTECTED]> escribió:

> Paul Boddie schreef:
>> On 3 Aug, 11:45, Stef Mientki <[EMAIL PROTECTED]> wrote:
>>> Sorry, my question missed the essential "NOT",
>>> here is an example, that behaves different in Delphi,
>>> (so I guess Delphi is not a real language ;-)
>>
>> Delphi is based on Pascal, and from what I can recall from my
>> university textbook, there isn't any mandatory short-circuit
>> evaluation in Pascal: it's an implementation-dependent feature.
>> Consequently, an expression involving boolean operators in such
>> languages may well evaluate each term (potentially causing side-
>> effects) before determining the final result.
>
> I even thought Pascal never uses short-circuit evaluation, and always
> evaluates all terms. I might be wrong about that though; it's been quite
> a long time since I've used Pascal.

Delphi defaults to short-circuit, but there is a compiler switch to make  
it evaluate all the arguments.
But most people rely on this, and write code like:

if (MyObject <> nil) and (MyObject.Event <> nil) then MyObject.Event(Self);

and that would break if not short-circuited.

-- 
Gabriel Genellina

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to