
Me gustaría llenar rutas de matrices de longitud arbitral usando un bucle. ¿Hay alguna manera de iterar el operador de relleno en cada elemento de la matriz, algo equivalente a este bucle de Shell?
set -A Test foo bar
for i in ${Foo[@]}; do print $i; done
Las matrices AFAIU METAPOST no son matrices clásicas, por lo que no sé si esto se puede lograr. Lo que estoy haciendo hasta ahora se parece a este MWE. Funciona hasta ahora, ya que mis matrices de rutas no crecieron a más de diez elementos, pero si lo hicieron, puedo pasar por alto que algo no se ha completado. Verificar las longitudes de las matrices es lo que me gustaría 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
Respuesta1
Tu podrías intentar 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