Preencha todos os elementos de um array METAPOST

Preencha todos os elementos de um array METAPOST

Gostaria de preencher caminhos de matrizes de comprimento arbitral usando um loop. Existe uma maneira de iterar o operador de preenchimento em cada elemento da matriz, algo equivalente a este loop de shell

set -A Test foo bar
for i in ${Foo[@]}; do print $i; done

Os arrays AFAIU METAPOST não são arrays clássicos, então não sei se isso pode ser alcançado. O que estou fazendo até agora se parece com este MWE. Funciona até agora, já que minhas matrizes de caminho não cresceram para mais de dez elementos, mas se isso acontecesse, posso ignorar que algo não foi preenchido. Verificar o comprimento dos arrays é o que eu gostaria de evitar.

\mainlanguage[]
\language[]



\starttext
\startMPpage
path T[];

T1:=unitcircle scaled 20;
T2:=unitsquare scaled 20 xshifted 30;
T3:=unitcircle scaled 20 xshifted 80;

for i=1 step 1 until 10:
   if known T[i]:
      draw T[i] ;
   fi
endfor ;
\stopMPpage
\stoptext

Responder1

Você poderia tentar forever:

\starttext
\startMPpage
path T[];

T1:=unitcircle scaled 20;
T2:=unitsquare scaled 20 xshifted 30;
T3:=unitcircle scaled 20 xshifted 80;

i:=1;
forever:
   if known T[i]:
      draw T[i];
      i:=i+1;
   fi
   exitif unknown T[i];
endfor ;
\stopMPpage
\stoptext

informação relacionada