R6RS Scheme: 표현식

R6RS Scheme: 표현식

Scheme 코드의 핵심 요소인 표현식(expression)의 개념을 설명해요. 리터럴 표현식과 복합 표현식이 어떻게 평가되는지, 그리고 Scheme의 프리픽스 표기법을 다뤄요.

출처: 문서

본문

Scheme 코드의 가장 중요한 요소는 *표현식(expressions)*이에요. 표현식은 *평가(evaluated)*될 수 있고, *값(value)*을 만들어내요. (실제로는 몇 개든 값이 나올 수 있어요 — 5.8절을 보세요.) 가장 근본적인 표현식은 리터럴 표현식이에요:

#t  ⇒ #t
23  ⇒ 23

이 표기법은 표현식 #t#t로 평가된다는 뜻인데, 즉 "참(true)"을 나타내는 값이라는 뜻이고, 표현식 23은 숫자 23을 나타내는 숫자 객체로 평가된다는 뜻이에요.

복합 표현식은 하위 표현식들을 괄호 안에 두어 형성돼요. 첫 번째 하위 표현식이 연산을 식별하고, 나머지 하위 표현식들은 그 연산의 피연산자(operand)예요:

(+ 23 42)  ⇒ 65
(+ 14 (* 23 42))  ⇒ 980

이 예들 중 첫 번째에서 +는 덧셈을 위한 내장 연산의 이름이고, 2342는 피연산자예요. 표현식 (+ 23 42)는 "23과 42의 합"이라고 읽어요. 복합 표현식은 중첩될 수 있어요 — 두 번째 예는 "14와 (23과 42의 곱)의 합"이라고 읽어요.

이 예들이 보여주듯이 Scheme의 복합 표현식은 항상 동일한 프리픽스(prefix) 표기법으로 써요. 그 결과 괄호가 구조를 나타내는 데 필요해요. 따라서 수학 표기법이나 많은 프로그래밍 언어에서 종종 허용되는 "불필요한" 괄호는 Scheme에서는 허용되지 않아요.

많은 다른 언어에서와 마찬가지로, 표현식의 하위 표현식들을 구분할 때 공백(줄 바꿈 포함)은 의미를 갖지 않으며 구조를 나타내는 데 사용할 수 있어요.

더 알아보기 (Learn more)

출처: Expressions - R6RS