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
이 예들 중 첫 번째에서 +는 덧셈을 위한 내장 연산의 이름이고, 23과 42는 피연산자예요. 표현식 (+ 23 42)는 "23과 42의 합"이라고 읽어요. 복합 표현식은 중첩될 수 있어요 — 두 번째 예는 "14와 (23과 42의 곱)의 합"이라고 읽어요.
이 예들이 보여주듯이 Scheme의 복합 표현식은 항상 동일한 프리픽스(prefix) 표기법으로 써요. 그 결과 괄호가 구조를 나타내는 데 필요해요. 따라서 수학 표기법이나 많은 프로그래밍 언어에서 종종 허용되는 "불필요한" 괄호는 Scheme에서는 허용되지 않아요.
많은 다른 언어에서와 마찬가지로, 표현식의 하위 표현식들을 구분할 때 공백(줄 바꿈 포함)은 의미를 갖지 않으며 구조를 나타내는 데 사용할 수 있어요.