I don't see any anomaly here. Since the intermediate function calls yet another 
function, it never needs to "close", that is, return, a value. It is a 
pass-through entity, a card carrying member of the chain of handler calls. Step 
through this variation:



on mouseUp
    put double(2) into myVar1 
answer myVar1
end mouseUp


function double var
   put redouble(var * 2) into myVar2 -- no return in this function
end double


function redouble var
   return var * 2
end redouble


The "8" you get is processed sequentially through the handler path, just like 
bacon.


Craig Newman



-----Original Message-----
From: Tiemo Hollmann TB <toolb...@kestner.de>
To: 'How to use LiveCode' <use-livecode@lists.runrev.com>
Sent: Fri, Nov 14, 2014 3:47 am
Subject: how are variables passed from functions?


By accident I noticed that I don't have a return at a certain point of a
function but nevertheless the value was passed back without a return to the
calling handler.

I can reproduce the issue to this scenario:

 

--Btn script

on mouseUp

    put foo1() into myVar1 -- I get the value "Test"           

end mouseUp

 

--script in stack

function foo1

   put foo2() into myVar2 -- no return in this function

end foo1

 

function foo2

   return "Test" -- return here in second level

end foo2

 

Up to now I thought that every function has to have a return statement if
you want anything getting back.

Can somebody explain to me what is going on here? How is the value from
function foo2 passed back to the mouseup handler, even with different var
names?

Is this a bug or just an accident or even wanted?

Thanks for enlightening

Tiemo

 

 

 

 

_______________________________________________
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