SICP 연습문제 1.34 친절한 풀이
문제
다음 프로시저를 정의하였다.
(define (f g) |
그런 다음 아래와 같이 실험해 보았다.
(f square) #4 |
실행기에 (f f)를 계산하라고 하면 어떤 일이 벌어지는가? 왜 그렇게 될까?
문제로 부터 얻은 것
다른 프로시저에 인자를 넣어주는 프로시저를 볼 수 있었습니다.
문제풀이
바로 실행해 보겠습니다.
오류가 나는 이유를 알아보기 위해 맛바꿈 계산법으로 전개해 보겠습니다.
(f f) |
(f 2) |
(2 2) |
f는 프로시저를 인자로 받는 프로시저인데 숫자인 2를 인자로 받게 됩니다.
(2 2)를 실행할 수는 없으므로, 에러를 발생시키는 것입니다.
이 문제의 의도는 아마도 아래의 프로시저를 살펴 보는 데에 있다고 생각합니다.
(define (f g) |
다른 프로시저에 인자를 넣어주는 프로시저를 볼 수 있었습니다.
읽어주셔서 감사합니다.