METAPOST에서 일종의 참조를 정의하는 방법은 무엇입니까?

METAPOST에서 일종의 참조를 정의하는 방법은 무엇입니까?

canvas일부 작업이 수집되는 METAPOST에서 추상 데이터 유형을 정의한다고 가정합니다 . 나는 일종의 정의를 내리고 싶다.참조마지막으로 추가된 작업에 대해 설명했지만 어떤 매크로 개념을 사용해야 할지 파악하기에 충분한 METAPOST를 알지 못합니다.

다음은 이러한 참조의 사용을 보여주는 no-op 코드입니다.

def task text TASK =
  vardef TASK.init =
  enddef;
enddef;

def canvas text CANVAS =
  numeric CANVAS._task_n;
  task CANVAS._task[];

  vardef CANVAS.init =
    #@._task_n := 0;
  enddef;

  vardef CANVAS.current_task =
    #@._task[#@._task_n]
  enddef;

  vardef CANVAS.add_task =
    #@._task_n := #@._task_n + 1;
    % #@.current_task.init; % ! Yield an isolated expression `init`
    #@._task[#@._task_n].init;
  enddef;

enddef;

canvas c;
c.init;
c.add_task;
bye;

주석에서 제안한 대로 대신 참조하도록 매크로를 current_task수정할 수 있도록 매크로를 올바르게 정의하려면 어떻게 해야 합니까 ?add_taskcurrent_task#@._task[#@._task_n]

관련 정보