(Lispex)sicp.io
1.1 · 프로그래밍의 기본 요소

표현식은 값을 묻는다.

조합식부터 시작합니다. 맨 앞의 연산자를 읽고 이어지는 피연산자를 확인한 뒤 평가가 전체 식을 하나의 값으로 만드는 과정을 살펴봅니다.

생각해 볼 질문

괄호로 묶인 조합식을 리스펙스 평가기는 어떻게 처리할까요?

  • 조합식에서 연산자와 피연산자 찾기
  • 실행 전에 결과값 예상하기
  • 화면에 출력된 내용과 반환값 구분하기

(* 3.14159 (* 5 5)) 같은 조합식에서 첫 항목은 적용할 프로시저입니다. 나머지는 피연산자 표현식입니다. 리스펙스는 피연산자를 먼저 평가하고 그 값에 프로시저를 적용합니다.

display는 글자를 출력하지만 마지막 곱셈의 값을 대신하지 않습니다. 실습 화면은 출력 내용과 반환값을 나누어 보여줍니다.

리스펙스 · SICP 코드SICP에 필요한 Scheme 호환 문법을 리스펙스 SICP 프로필로 실행합니다.
(begin
  (display "area ")
  (* 3.14159 (* 5 5)))
리스펙스 학습용 런타임리스펙스 SICP 프로필 1.0.0
리스펙스 SICP 런타임 불러오는 중
리스펙스 · SICP 코드UTF-8 49 / 1,048,576바이트
예제
결과
출력
진단
보이는 실행 흐름0 / 0 개의 실행 이벤트
    이 브라우저 결과는 리스펙스 바우치나 권한이 아닙니다.wasm —
    예상 관찰

    첫 프로그램은 area를 출력하고 78.53975를 반환합니다.

    실행 흐름에서 볼 점

    안쪽 곱셈이 바깥쪽 곱셈보다 먼저 처리되는지 살펴보세요. 순서대로 기록된 실행 흐름은 마지막 숫자만으로는 보이지 않는 중첩 구조를 드러냅니다. 이 실행 흐름은 한 번의 실행을 보는 제한된 학습 화면이며 리스펙스 바우치나 권한이 아닙니다.

    직접 해보기

    힌트를 보기 전에 프로그램을 바꿔 보세요.

    반지름을 5에서 8로 바꾸세요. 결과값을 먼저 예상한 다음 반환되는 넓이를 바꾸지 않으면서 display 호출을 하나 더 추가해 보세요.

    힌트 하나 보기

    begin 식 전체의 값은 마지막 표현식의 값입니다.