UNLOOP — 루프 제어 매개변수 버리기

UNLOOP — 루프 제어 매개변수 버리기

UNLOOP는 현재 중첩 수준의 루프 제어 매개변수를 버리는 코어 단어예요.

출처: UNLOOP — Forth 2012 Standard

본문

실행 (Execution)

( -- ) ( R: loop-sys -- )

설명

현재 중첩 수준의 루프 제어 매개변수를 버려요. 정의가 EXIT될 수 있으려면 각 중첩 수준에 대해 UNLOOP이 필요해요. 루프 제어 매개변수를 사용할 수 없으면 애매한 조건이 존재해요.

참조 (See)

  • 3.2.3.3 Return stack(복귀 스택)
  • A.6.1.2380 UNLOOP

합리성 (Rationale)

전형적인 사용:

: X ...
  limit first DO
    ... test IF ... UNLOOP EXIT THEN ...
  LOOP ...
;

UNLOOPDO...LOOP 및 관련 do-loop 구조의 문맥 안에서 EXIT의 사용을 허용해요. UNLOOP는 함수로서 한때 UNDO라고 불렸다. UNLOOP가 동작을 더 잘 나타낸다: 아무것도 되돌려지지 않는다 — 우리는 단순히 루프 제어 매개변수를 버리는 것뿐이다.

테스트 (Testing)

T{ : GD5 123 SWAP 0 DO
        I 4 > IF DROP 234 LEAVE THEN
      LOOP ; ->  }T
T{ 1 GD5 -> 123 }T
T{ 5 GD5 -> 123 }T
T{ 6 GD5 -> 234 }T

더 알아보기 (Learn more)

출처: UNLOOP — Forth 2012 Standard