METAPOST 배열의 모든 요소 채우기

METAPOST 배열의 모든 요소 채우기

루프를 사용하여 임의 길이의 배열 경로를 채우고 싶습니다. 각 배열 요소에서 채우기 연산자를 반복하는 방법이 있습니까? 이 쉘 루프와 동일합니다.

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

AFAIU METAPOST 배열은 클래식 배열이 아니므로 이것이 가능한지 모르겠습니다. 지금까지 내가 하고 있는 일은 MWE와 같습니다. 내 경로 배열이 10개 이상의 요소로 증가하지 않았기 때문에 지금까지는 작동하지만, 그렇다면 무언가가 채워지지 않았다는 것을 간과할 수 있습니다. 배열 길이를 확인하는 것은 피하고 싶습니다.

\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

답변1

당신은 시도해 볼 수 있습니다 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

관련 정보