R6RS Scheme: 바인딩과 정의
R6RS Scheme: 바인딩과 정의
기본 라이브러리에서 변수 정의와 문법 정의로 바인딩을 만드는 방식을 설명해요.
출처: 문서
본문
정의(definition)는 프로그램에 바인딩을 만들어요. 기본 라이브러리는 두 종류의 정의를 제공해요: 변수 정의(variable definition)와 문법 정의(syntax definition).
변수 정의는 define 키워드로 만들고, 식별자를 그 값과 연결해요. 값은 그 정의가 만들어질 때의 방식에 따라 즉시 평가되거나 지연될 수 있어요. 문법 정의는 define-syntax 키워드로 만들고, 문법 변환을 명세하는 매크로 변환기(transformer)를 식별자와 연결해요.
변수 정의는 또한 프로시저를 정의하는 축약 형태를 제공하는데, (define (f x) ...) 형식은 (define f (lambda (x) ...))로 번역돼요. 정의는 그 정의가 나타나는 바디(body) 전체에 걸쳐 유효한 바인딩을 만들어요.