Rexx-스택
스택을 외부 데이터 큐라고도하지만 일반적인 사용법을 따르고이를 스택이라고합니다. Rexx에 논리적으로 외부에있는 메모리 블록입니다. push 및 queue와 같은 명령은 데이터를 스택에 배치하고 pull 및 parse pull과 같은 명령은 데이터를 추출합니다. 대기중인 내장 함수는 스택에있는 항목 수를보고합니다.
스택의 예를 살펴 보겠습니다.
/* STACK: */
/* */
/* This program shows how to use the Rexx Stack as either a */
/* stack or a queue. */
do j = 1 to 3
push ‘Stack: line #’ || j
/* push 3 lines onto the stack */
end
do j = 1 to queued()
/* retrieve and display LIFO */
pull line
say line
end
do j = 1 to 3 queue ‘Queue: line #’ || j
/* queue 3 lines onto the stack */
end
do queued()
/* retrieve and display FIFO */
pull line
say line
end
exit 0
프로그램의 첫 번째 do 루프는 스택에 세 줄의 데이터를 배치합니다. 이를 위해 푸시 명령을 사용합니다. LIFO 순서로 검색 될 때 순서가 분명하도록 줄에 번호를 매 깁니다.
푸시 명령에 의해 스택에 배치 된 항목은 LIFO 순서로 검색됩니다.
do j = 1 to 3
push ‘Stack: line #’ || j /* push 3 lines onto the stack */
end
다음 코드 블록은 스택의 라인 수를 발견하기위한 큐 내장 함수의 사용과 스택에서 모든 라인을 검색하는 루프를 보여줍니다.
do j = 1 to queued() /* retrieve and display LIFO */
pull line
say line
end
세 항목은 푸시를 통해 스택에 배치되었으므로 LIFO 순서로 검색됩니다.
위 프로그램의 출력은 다음과 같습니다.
STACK: LINE #3
STACK: LINE #2
STACK: LINE #1