Yes, your description is correct (except for saying the behavior is "puzzling" :-)

The first case you are passing a single parameter (which happens to have commas in its current content). You could have said " .... paramcount() returns 1 as expected".

The second case you pass 5 values.

And the third case, as you say, expands the value first, so it becomes a call with 5 parameters.

Alex.

On 29/11/2022 08:03, Tore Nilsen via use-livecode wrote:
I have come across a puzzling behavior when trying to use the content of a 
field as parametres in a function, and I am trying to understand why.

I put the following in a field called «test»: 1,2,3,4,5

When I then call the function like this:
                answer testFunction(field «test»), the paramCount() returns 1

If I use the values directly in the script:
                answer testFunction(1,2,3,4,5), the paramCount() returns 5 as 
expected

I will also get the expected result if a do the following:

                put "answer testFunction(" & field «test»  & ")" into tScript
                do tScript

I guess the reason for this is that in the last example, LiveCode compiles the 
content of the variable tScript before execution, and that this turns what is 
first treated as a single block of text into a list of parametres.

The reason why I want to understand what is happening is that I am about to 
teach my students how to write reusable code that will behave correctly for any 
number of parametres.

So my question is if I am on the right track?

Best regards
Tore Nilsen
_______________________________________________
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