ENVIRONMENT? — 환경 질의

ENVIRONMENT? — 환경 질의

ENVIRONMENT?는 환경 질의 키워드를 담은 문자열을 받아, 현재 환경의 속성과의 대응 여부를 검사하는 코어 단어예요.

출처: ENVIRONMENT? — Forth 2012 Standard

본문

스택 효과

( c-addr u -- false | i*x* true )

설명

c-addr는 문자 문자열의 주소이고 u는 그 문자열의 문자 개수예요. u는 0부터 구현 정의된 최댓값(31보다 작아서는 안 됨) 사이의 값일 수 있어요. 문자열은 3.2.6 Environmental queries 또는 선택 워드 집합의 키워드를 담아야 하며, 현재 환경의 속성과의 대응이 검사돼요. 시스템이 그 속성을 알 수 없다고 처리하면 반환 플래그는 false이고, 그렇지 않으면 플래그는 true이며 반환되는 i*x*는 질의된 속성의 표에 명시된 타입이에요.

참조 (See)

  • A.6.1.1345 ENVIRONMENT?

합리성 (Rationale)

Core 워드 집합만을 담고 있는 표준 시스템에서 ENVIRONMENT?를 효과적으로 사용하려면, 정의 안에서 사용하거나 사용자가 제공한 보조 정의를 사용해야 해요. Core 워드 집합에는 해석 상태에서 문자열을 수집하는 직접적인 방법(11.6.1.2165 S" 는 선택 워드 집합에 있음)도, 해석 상태에서 반환된 플래그를 검사하는 수단(예: 선택 15.6.2.2532 [IF])도 모두 없어요.

테스트 (Testing)

\ should be the same for any query starting with X:
T{ S" X:deferred" ENVIRONMENT? DUP 0= XOR INVERT -> <TRUE>  }T
T{ S" X:notfound" ENVIRONMENT? DUP 0= XOR INVERT -> <FALSE> }T

더 알아보기 (Learn more)

출처: ENVIRONMENT? — Forth 2012 Standard