SICP 연습문제 2.5 친절한 풀이
문제
오로지 수와 산술 연산만으로 양의 정수 쌍도 표현해 보자. 정수 a,b 쌍을 로 나타낼 때, 이에 알맞은 cons, car, cdr 프로시저를 정의해 보라.
문제로 부터 얻은 것
cons를 만들 수 있는 참신한 방법을 하나 알아갑니다.
또한 이런식으로 구현해도 요약의 경계 덕분에 cons를 사용하는 데에 아무런 문제가 없을 것입니다.
문제풀이
정수 a,b 쌍을 로 나타낸다고 했을때
a값을 구하기 위해서는 에 a가 몇번 곱해져 있는지를 계산하면 됩니다.
base를 n으로 몇번 나눌 수 있지를 검사하는 프로시저 입니다.
(define (divides? base n) |
그러면 cons, car, cdr의 구현은 다음과 같습니다.
(define (pow b n) |
읽어주셔서 감사합니다.