sicp.io
1.1.3 · 이름 붙이기

프로시저는 과정에 이름을 붙인다.

작은 동작을 조합해 쓸모 있는 연산을 만들고 프로시저가 적용될 때 매개변수가 인자 값에 묶이는 과정을 살펴봅니다.

생각해 볼 질문

프로시저 정의는 표현식을 어떻게 재사용할 수 있는 방법으로 만들까요?

  • 프로시저 정의를 매개변수와 본문으로 나누어 읽기
  • 복합 프로시저가 한 번 적용되는 과정 따라가기
  • 이름과 그 이름에 묶인 값 구분하기

square는 매개변수 하나를 받는 프로시저에 이름을 붙입니다. sum-of-squares는 square를 두 번 적용해 결과를 합칩니다. 정의는 방법을 기록할 뿐이며 프로시저가 적용되기 전에는 본문을 실행하지 않습니다.

프로시저를 적용하면 새 환경에서 각 매개변수가 인수 값에 묶입니다. 그 환경에서 본문을 평가하므로 3과 4를 넣은 sum-of-squares는 25를 반환합니다.

SICP 코드UTF-8 122 / 1,048,576바이트
예제
결과
출력
진단
실행 추적0 / 0 개 이벤트
    실행은 브라우저 안에서 이루어지며 프로그램 결과와 실행 추적을 보여줍니다.
    예상 결과

    첫 프로그램은 아무것도 출력하지 않고 25를 반환합니다.

    실행 추적에서 볼 점

    square가 두 번 적용되는 지점을 찾아보세요. 같은 본문을 평가하지만 두 호출의 x는 서로 다른 값에 묶입니다. 실행 흐름은 선택한 한 실행의 바인딩과 적용을 정확히 기록합니다.

    직접 해보기

    프로그램을 수정하고 결과를 비교해 보세요.

    cube 프로시저를 사용해 sum-of-cubes를 정의한 다음 2와 3에 대해 실행하세요.

    힌트 보기

    한 값을 세제곱하는 방법과 두 결과를 합치는 방법을 서로 나누어 두세요.

    이 수업 완료하기

    이 장의 총 18개 수업 중 0개 완료0%