UNLOOP — 루프 제어 매개변수 버리기
UNLOOP — 루프 제어 매개변수 버리기
UNLOOP는 현재 중첩 수준의 루프 제어 매개변수를 버리는 코어 단어예요.
본문
실행 (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 ...
;
UNLOOP는 DO...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