IS — 지연 정의의 실행 토큰 설정
IS — 지연 정의의 실행 토큰 설정
IS는 DEFER로 정의된 name이 xt를 실행하도록 설정하는 코어 확장 단어예요.
본문
해석 (Interpretation)
( xt "<spaces>name" -- )
선행 공백을 건너뛰고 공백으로 구분된 name을 파싱해요. name이 xt를 실행하도록 설정해요. name이 DEFER로 정의되지 않았으면 애매한 조건이 존재해요.
컴파일 (Compilation)
( "<spaces>name" -- )
선행 공백을 건너뛰고 공백으로 구분된 name을 파싱해요. 아래 주어진 실행 시점 의미를 현재 정의에 추가해요. name이 DEFER로 정의되지 않았으면 애매한 조건이 존재해요.
실행 (Run-time)
( xt -- )
name이 xt를 실행하도록 설정해요. POSTPONE, [COMPILE], ['] 또는 '가 IS에 적용되면 애매한 조건이 존재해요.
참조 (See)
- 6.2.0698 ACTION-OF
- 6.2.1173 DEFER
- 6.2.1175 DEFER!
- 6.2.1177 DEFER@
구현 (Implementation)
: IS
STATE @ IF
POSTPONE ['] POSTPONE DEFER!
ELSE
' DEFER!
THEN ; IMMEDIATE
테스트 (Testing)
T{ DEFER defer5 -> }T
T{ : is-defer5 IS defer5 ; -> }T
T{ ' * IS defer5 -> }T
T{ 2 3 defer5 -> 6 }T
T{ ' + is-defer5 -> }T
T{ 1 2 defer5 -> 3 }T