표현식은 값을 묻는다.
조합식부터 시작합니다. 맨 앞의 연산자를 읽고 이어지는 피연산자를 확인한 뒤 평가가 전체 식을 하나의 값으로 만드는 과정을 살펴봅니다.
생각해 볼 질문
괄호로 묶인 조합식을 리스펙스 평가기는 어떻게 처리할까요?
- 조합식에서 연산자와 피연산자 찾기
- 실행 전에 결과값 예상하기
- 화면에 출력된 내용과 반환값 구분하기
(* 3.14159 (* 5 5)) 같은 조합식에서 첫 항목은 적용할 프로시저입니다. 나머지는 피연산자 표현식입니다. 리스펙스는 피연산자를 먼저 평가하고 그 값에 프로시저를 적용합니다.
display는 글자를 출력하지만 마지막 곱셈의 값을 대신하지 않습니다. 실습 화면은 출력 내용과 반환값을 나누어 보여줍니다.
(begin
(display "area ")
(* 3.14159 (* 5 5)))리스펙스 학습용 런타임리스펙스 SICP 프로필 1.0.0
리스펙스 SICP 런타임 불러오는 중
리스펙스 · SICP 코드UTF-8 49 / 1,048,576바이트
예제
결과—
- 출력
- —
- 값
- —
- 진단
- —
보이는 실행 흐름0 / 0 개의 실행 이벤트
첫 프로그램은 area를 출력하고 78.53975를 반환합니다.
안쪽 곱셈이 바깥쪽 곱셈보다 먼저 처리되는지 살펴보세요. 순서대로 기록된 실행 흐름은 마지막 숫자만으로는 보이지 않는 중첩 구조를 드러냅니다. 이 실행 흐름은 한 번의 실행을 보는 제한된 학습 화면이며 리스펙스 바우치나 권한이 아닙니다.
힌트를 보기 전에 프로그램을 바꿔 보세요.
반지름을 5에서 8로 바꾸세요. 결과값을 먼저 예상한 다음 반환되는 넓이를 바꾸지 않으면서 display 호출을 하나 더 추가해 보세요.
힌트 하나 보기
begin 식 전체의 값은 마지막 표현식의 값입니다.