이 문제는 sum과 product의 확장판인 accumulate 프로시저를 만드는 문제입니다.

어떤 수열을 묶어 가는 개념이라 설명하였는데, 처음에는 그 뜻을 잘 몰랐습니다.

그래서 새롭게 만들어진 combiner와 null-value를 이해하지 못했습니다.

 

하지만 앞에서 sum과 product 프로시저를 만들 때 이런 생각을 했습니다.

'둘의 차이는 +와 * 그리고 0과 1이구나.'

001

002

003

 

즉, sum에서 +, product에서 *가 combiner가 되고,

sum에서 0, product에서 1이 null-value가 되는 것을 알았습니다.

 

그에 맞춰 accumulate 프로시저를 만들었습니다.

c12

재귀 프로세스와 반복 프로세스 모두 제대로 작동하였습니다.

 

이렇기에 연습문제를 차근차근 풀어야 하는군요.^^

만약 이 문제를 바로 접했다면 저로서는 전혀 몰랐을 것입니다.^^ㅜㅜ

 

여기서 쓰인 sum과 product는 각각 시그마와 파이를 상징합니다.

그 외의 다른 수열에서도 쓸 수 있는 accumulate라니...

정말 신기합니다.^^

 

 

참조

Structure and Interpretation of Computer Programs 2/E - Page 78

크리에이티브 커먼즈 라이선스
Creative Commons License

글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.

트랙백 주소 :: http://nosyu.pe.kr/trackback/1267

댓글을 달아 주세요

[로그인][오픈아이디란?]