David Costanzo - 2022-05-31

I didn't read what you wrote closely, but the documentation for FOR says this about the third member

A word or list that is evaluated to determine a number, the "limit value" of the variable.

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

MAKE "label "Hello
FOR [position 1 [COUNT :label]] [PRINT ITEM :position :label]
H
e
l
l
o

You can use an expression if you like, but then the entire first input must be evaluated before it is given to FOR.

MAKE "label "Hello
FOR (LIST "position 1 (COUNT :label)) [PRINT ITEM :position :label]
H
e
l
l
o

If you want to see the logic behind it, use SHOW:

SHOW ITEM 3 [position 1 COUNT :label]
COUNT
SHOW ITEM 3 [ position 1 (COUNT :label) ]
(COUNT