IS — 지연 정의의 실행 토큰 설정

IS — 지연 정의의 실행 토큰 설정

ISDEFER로 정의된 namext를 실행하도록 설정하는 코어 확장 단어예요.

출처: IS — Forth 2012 Standard

본문

해석 (Interpretation)

( xt "<spaces>name" -- )

선행 공백을 건너뛰고 공백으로 구분된 name을 파싱해요. namext를 실행하도록 설정해요. nameDEFER로 정의되지 않았으면 애매한 조건이 존재해요.

컴파일 (Compilation)

( "<spaces>name" -- )

선행 공백을 건너뛰고 공백으로 구분된 name을 파싱해요. 아래 주어진 실행 시점 의미를 현재 정의에 추가해요. nameDEFER로 정의되지 않았으면 애매한 조건이 존재해요.

실행 (Run-time)

( xt -- )

namext를 실행하도록 설정해요. 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

더 알아보기 (Learn more)

출처: IS — Forth 2012 Standard