Okay, I get it now. Nice little essay, Jacque!

Many thanks to Jacque and others on this thread.

Tim


On Jun 19, 2011, at 8:48 PM, J. Landman Gay wrote:

> On 6/19/11 4:10 PM, Timothy Miller wrote:
> 
>> Is it true that the "do" command and the "value" function perform
>> about the same tasks in different ways? I.e., is it true that you can
>> avoid "do" by judicious use of "value"?
> 
> They are for different purposes and not really interchangeable. The value 
> function is more limited than "do", it just returns a single evaluation of an 
> expression. "Do" can execute a whole script at a time, but it has a lot of 
> overhead and should be avoided when possible.
> 
> I have never needed to nest value() functions, as per your other post; there 
> is almost always a better way. The example of value(value(line x of fld y)) 
> is redundant; just "get line x of fld y" is enough to give you the text of 
> the line. Most things you want to do are like that, there are usually 
> alternatives.
> 
> You need value() occasionally to force an evaluation when there is no other 
> way. For example, it is used to call a function remotely when the function 
> isn't in the message path:
> 
>  put value("myFunction()",stack "mySubstack")
> 
> In many cases you don't need value() at all, just supplying parentheses will 
> force an evaluation. Parentheses are required for that reason when getting 
> the contents of a URL container:
> 
>  get url ("file:"& fileVarPath)
> 
> Without the parentheses the call will fail. The text must be evaluated into a 
> functional URL before it can work, and the parentheses force that to happen.
> 
> A common purpose for "do", besides constructing variables or syntax on the 
> fly, is to execute commands in another language:
> 
>  do field 1 as applescript
> 
> That will force the AppleScript compiler to load. If you are "do"ing 
> something in LiveCode instead of applescript, then LiveCode's own compiler 
> needs to load. A "do" is functionally similar to opening the script editor, 
> typing some commands, and hitting the "compile" button.
> 
> There are so many built-in ways to get values that explicitly calling "do" 
> (or value) isn't necessary very often, though sometimes there is no way 
> around it. If you want to post a few of your own "do" examples, maybe we can 
> see if there is a different way to execute them.
> 
> -- 
> 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