STEP — 폼의 평가를 한 단계씩 따라가는 디버깅 매크로

STEP — 폼의 평가를 한 단계씩 따라가는 디버깅 매크로

디버깅하는 동안 프로그램이 정확히 어떤 순서로 계산되는지 한 걸음씩 보고 싶을 때 쓰는 매크로예요. step은 폼의 평가 과정을 프로그래머가 단계적으로 따라가도록 해줘요.

출처: CLHS: Macro STEP

이 문서는 디버깅/개발용 매크로입니다. STEP은 프로그램 전역에서 쓰이는 게 아니라, REPL에서 동작을 추적할 때 주로 활용돼요.

시그니처

step form => results*

본문

인자와 값 (Arguments and Values)

  • form — 폼; 아래에서 설명하는 대로 평가돼요.
  • resultsform이 돌려준 값.

설명 (Description)

step은 프로그래머가 폼의 평가를 단계별로 따라갈 수 있게 하는 디버깅 패러다임을 구현해요. 어떤 I/O 스트림을 쓰는지, 스테핑이 어휘적 범위인지 동적 범위인지 같은 구체적인 상호작용 방식은 **구현 정의적(implementation-defined)**이에요.

step은 현재 환경에서 form을 평가해요. step 호출은 컴파일될 수 있지만, 해석되는 계산 부분만 대화형으로 스테핑하는 것도 구현에게 허용돼요.

기술적으로는, 적합한 구현(conforming implementation)이 form을 정상 실행하는 것 외에는 아무것도 하지 않아도 허용돼요. 그런 상황에서 (step form)은 예를 들어 (let () form)과 동등해요. 이 경우 관련 문서에 그 사실을 명시해야 해요.

예제 (Examples)

없음.

특이 상황 (Exceptional Situations)

없음.

참고 (Notes)

구현들은 ?를 입력하거나 '도움말 키'를 눌렀을 때 명령 목록을 포함한 도움말을 제공하도록 권장돼요.

더 알아보기

  • trace — 함수 호출을 추적하는 매크로