VALUE — 값 정의
VALUE — 값 정의
VALUE는 실행 시점에 값 x를 스택에 올려놓는 정의 name을 만드는 코어 확장 단어예요.
본문
스택 효과
( x "<spaces>name" -- )
설명
선행 공백 구분자를 건너뛰고 공백으로 구분된 name을 파싱해요. 아래 정의된 실행 의미를 가진 name의 정의를 만들어요.
name 실행 (name Execution)
( -- x )
x를 스택에 올려놓아요. x의 값은 name이 만들어질 때 주어진 값이며, x TO name 구절이 실행되어 name에 새 값이 할당될 때까지 유지돼요.
TO name 실행 (TO name Run-time)
( x -- )
값 x를 name에 할당해요.
참조 (See)
- 3.4.1 Parsing(파싱)
- 6.2.2295 TO
- A.6.2.2405 VALUE
합리성 (Rationale)
전형적인 사용:
0 VALUE data
: EXCHANGE ( n1 -- n2 )
data TO data ... ;
EXCHANGE는 n1을 data에 남기고 이전 값 n2를 반환해요.
테스트 (Testing)
T{ 111 VALUE v1 -> }T
T{ v1 -> 111 }T
T{ 222 TO v1 -> }T
T{ v1 -> 222 }T