I'll try to simplify the problem:
I wrote to the commandline
MAKE "label "Hello
MAKE "limit COUNT :label
for [position 1 :limit][PRINT ITEM :position :label]
and got the result
H
e
l
l
o
Then I replaced :limit by its definition COUNT :label and the project looked like
MAKE "label "Hello
for [position 1 COUNT :label][PRINT ITEM :position :label]
and the result was in red:
not enough inputs to COUNT
So I tried:
MAKE "label "Hello
for [position 1 (COUNT :label)][PRINT ITEM :position :label]
and was informed:
too many ('s
Now, my replacement of :limit by COUNT :label should have have worked, shouldn't it? Or is it not allowed to use expressions in the for loop? What is the logic behind it?
That's my question for today. (Maybe it has been discussed earlier somewhere.)
By the way: We (pbreport) had to solve a bunch of problems and to finish official projects during the last three months. Now we're returning to 'Little Helper' to get it pretty soon to a high level.. Other FMSLogo-projects will follow. Our targets are still the same.
I didn't read what you wrote closely, but the documentation for FOR says this about the third member
Because you are using a list literal for the first input to FOR, you must use a list literal, not an expression for the lists within that list. Something like
You can use an expression if you like, but then the entire first input must be evaluated before it is given to FOR.
If you want to see the logic behind it, use SHOW: