The long answer on when to use a function vs command

Jeanne A. E. DeVoto revolution at jaedworks.com
Wed Mar 15 14:21:11 EST 2006


At 10:13 AM -0500 3/15/2006, Thomas McGrath III wrote:
>I am curious as to any other unique aspects that could affect a 
>decision on which to use in different situations.
>
>Functions are normally used with a 'put' or 'get' -- Is this true?
>Commands are normally used alone (with/without a parameter) but not 
>usually with a get or put -- Is this true?

Not necessarily. I think an easier way to think of how functions are 
used is to consider that a function can be part of an expression, 
while a command is more of a thing unto itself. Consider:

   put myFunction(this,that,theotherThing) into field "Result"
   if myFunction(this,that) + 1 > 25 then beep
   wait until myFunction(that,theOtherThing) is true

In all these cases, the function call substitutes for a value (a 
number or string), and the line it's on uses that value. This is not 
possible with a command.


>Is one more friendly with a lot of parameters? -- enough params that 
>you would need a switch/case

Not really. You use the parameters in the same way, once you're in 
the custom handler.


>If you have a function to get some info on an object like:
>put getObjInfo("objName") into field "Info"

(I'd probably name it objectInfo, not getObjectInfo. No functional 
need, but I think it reads better that way. "getObjectInfo" reads 
like a command.)


>Would you use a command to set that info like: -- or should this be 
>a function too? -- (ignore the cust prop aspect for now)

Think about it like this: what's the routine's main purpose in life? 
Is it to do something, or to return a value? It sounds like setting 
the object info would mainly exist to do something - set a property, 
perhaps - so it ought to be a command.
-- 
jeanne a. e. devoto ~ revolution at jaedworks.com
http://www.jaedworks.com



More information about the use-livecode mailing list