STEP — 폼의 평가를 한 단계씩 따라가는 디버깅 매크로
STEP — 폼의 평가를 한 단계씩 따라가는 디버깅 매크로
디버깅하는 동안 프로그램이 정확히 어떤 순서로 계산되는지 한 걸음씩 보고 싶을 때 쓰는 매크로예요. step은 폼의 평가 과정을 프로그래머가 단계적으로 따라가도록 해줘요.
출처: CLHS: Macro STEP
이 문서는 디버깅/개발용 매크로입니다. STEP은 프로그램 전역에서 쓰이는 게 아니라, REPL에서 동작을 추적할 때 주로 활용돼요.
시그니처
step form => results*
본문
인자와 값 (Arguments and Values)
form— 폼; 아래에서 설명하는 대로 평가돼요.results—form이 돌려준 값.
설명 (Description)
step은 프로그래머가 폼의 평가를 단계별로 따라갈 수 있게 하는 디버깅 패러다임을 구현해요. 어떤 I/O 스트림을 쓰는지, 스테핑이 어휘적 범위인지 동적 범위인지 같은 구체적인 상호작용 방식은 **구현 정의적(implementation-defined)**이에요.
step은 현재 환경에서 form을 평가해요. step 호출은 컴파일될 수 있지만, 해석되는 계산 부분만 대화형으로 스테핑하는 것도 구현에게 허용돼요.
기술적으로는, 적합한 구현(conforming implementation)이 form을 정상 실행하는 것 외에는 아무것도 하지 않아도 허용돼요. 그런 상황에서 (step form)은 예를 들어 (let () form)과 동등해요. 이 경우 관련 문서에 그 사실을 명시해야 해요.
예제 (Examples)
없음.
특이 상황 (Exceptional Situations)
없음.
참고 (Notes)
구현들은 ?를 입력하거나 '도움말 키'를 눌렀을 때 명령 목록을 포함한 도움말을 제공하도록 권장돼요.
더 알아보기
trace— 함수 호출을 추적하는 매크로