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