Alex Tweedly wrote:
This very simple script doesn't work. Question is whether it should or not ?
command increment @p
add 1 to p
end increment
on mouseUp
local t, tA
put 2 into t
increment t
put t &CR after msg
put 5 into tA[1]
increment tA[1]
put tA[1] &CR after msg
end mouseUp
Intutively, to me, it should work. The element of the array can be
treated just like a simple variable - use its value, assign to it, etc.
- but it cannot be used as the actual parameter to a pass-by-reference
parameter.
I can't find anywhere in the documentation that says that - but I can't
actually find anywhere that it would say that - the docs I've found are
pretty quiet on the subject of what an array is, or what an element is.
Is this a deficiency you would expect ?
Or should I submit as a bug/request ?
I would have expected it, but I can see value in allowing what you
suggest. I'm just not sure how to go about it.
Args are evaluated before being passed in, so:
increment tA[1]
...becomes:
increment (the value of element "1" in the array tA)
One option for passing the array would be to pass the whole thing with a
specifier for the element to be affected as a separate argument:
increment tA, 1
But you've probably already considered that.
So we have a question: if enough folks find this sort of suggested
syntax useful, by what syntactic means could we tell the interpreter not
to evaluate the argument?
--
Richard Gaskin
Fourth World
LiveCode training and consulting: http://www.fourthworld.com
Webzine for LiveCode developers: http://www.LiveCodeJournal.com
Follow me on Twitter: http://twitter.com/FourthWorldSys
_______________________________________________
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