DEFER — 지연 정의 생성

DEFER — 지연 정의 생성

DEFER는 공백으로 구분된 name을 파싱해, 실행 시점에 name이 실행하도록 설정된 실행 토큰 xt를 실행하는 정의를 만드는 코어 확장 단어예요.

출처: DEFER — Forth 2012 Standard

본문

스택 효과

( "<spaces>name" -- )

설명

선행 공백 구분자를 건너뛰고 공백으로 구분된 name을 파싱해요. 아래 정의된 실행 의미를 가진 name의 정의를 만들어요.

name 실행 (name Execution)

( i*x* -- j*x* )

name이 실행하도록 설정된 xt를 실행해요. name이 어떤 xt를 실행하도록 설정되지 않았으면 애매한 조건이 존재해요.

참조 (See)

  • 6.2.0698 ACTION-OF
  • 6.2.1175 DEFER!
  • 6.2.1177 DEFER@
  • 6.2.1725 IS

구현 (Implementation)

: DEFER ( "name" -- )
   CREATE ['] ABORT ,
   DOES> ( ... -- ... )
      @ EXECUTE ;

테스트 (Testing)

T{ DEFER defer2 ->   }T
T{ ' * ' defer2 DEFER! ->  }T
T{   2 3 defer2 -> 6 }T
T{ ' + IS defer2 ->   }T
T{    1 2 defer2 -> 3 }T

더 알아보기 (Learn more)

출처: DEFER — Forth 2012 Standard