OK,

You can simply declare a variable, ostensibly empty, and the engine will watch 
your back if you try to add something to it. But you cannot both declare and 
add in the same line of code. So there is another level of declaration, perhaps 
because it occurs in the very same line as the test arithmetic, that breaks:


on mouseUp
put b + 3
end mouseUp


This is similar to but "below" the extra level of evaluation that we know as a 
"do"  construction. It is deeper, closer to the heart of the engine, perhaps, 
that was never addressed (or ignored for other reasons)? Because this does not 
work, though one might think it should:



on mouseUp
   do "put b + 3"
end mouseUp



Craig



-----Original Message-----
From: J. Landman Gay <jac...@hyperactivesw.com>
To: How to use LiveCode <use-livecode@lists.runrev.com>
Sent: Mon, Oct 27, 2014 3:16 pm
Subject: Re: Is zero the same as empty?


On 10/27/2014, 1:55 PM, dunb...@aol.com wrote:
> on mouseUp
>    local b
>    answer b + 1
> end mouseUp
>
>
> Also works just fine, thank you, and therefore the engine still knows what to 
do

Right, because even if you put empty into the variable first (as in your 
second message) the act of doing a math calculation forces the variable 
to zero. It happens internally, so you don't see it.

put empty into b
put b = zero -- false
put b+1 -- 1, because empty has converted to zero internally
put b = zero -- false

The point being that until it is used, empty can be either empty or 
zero. Usage determines the value. However, the last line above will put 
"false", because the engine restores the original value if it was specified.

This throws an error:

on mouseUp
   put b = zero -- false
   put b = "" -- false
   put b+1 -- ERROR
end mouseUp

So we can apparently confuse the engine into not knowing what the value 
should be.

-- 
Jacqueline Landman Gay         |     jac...@hyperactivesw.com
HyperActive Software           |     http://www.hyperactivesw.com

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

 
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to