자바스크립트로 배우는 SICP - 9. 추상의 시너지
쌍 객체를 이용한 추상화!
2023-11-01 | 독서 | 5min
오늘은 쌍 객체를 이용하여 트리 자료구조를 구현하고, 트리의 요소들을 순회하며 함수를 적용하는 방식을 신호처리 분야와 연관지어 단계별로 추상화하는 내용에 대해서 다뤘다!
특히 기억나던 점은 트리의 각 요소들의 수치가 홀수인 잎을 골라서 그 제곱을 합산하는 함수와 피보나치 수열에서 짝수들을 선택해 이루어진 목록을 구성하는 함수의 공통 패턴을 확인하는 것이다.
전자의 경우,
- 트리의 잎들을 나열하고
- 홀수 잎들만 선택하는 필터를 적용하며
- 각 잎의 수치를 제곱하고
- 각 제곱한 수치들을 누산한다
의 과정들로 나눌 수 있다.
후자의 경우,
- 범위의 요소들을 나열하고
- 해당 피보나치 수를 계산하고
- 짝수인 피보나치 수를 필터링하고
- 각 수들을 쌍 객체를 이용하여 누산한다
의 과정들로 나눌 수 있다.
위에서 공통적인 부분은 나열, 필터, 함수 적용(계산), 누산의 부분들로 이루어져있다는 것이다!
filter
→ 필터링 역할을 위한 추상함수 구현accumulate
→ 누산을 위한 추상함수 구현enumerate_interval
/enumerate_tree
→ 각각의 계산을 위해 적용한 함수map
→ 필터들이나 계산함수들을 각 요소들에 적용하기 위한 추상함수 구현
위의 4가지 함수들을 활용한다면, 위 두 경우들을 모두 구현할 수 있는 추상을 달성할 수 있게 된다.
이 부분이 너무나 유익했다!
오늘은 급한 일정으로 이 정도만 작성하고 이전처럼 키워드 중심으로 자세하게 글을 이어나가겠다…!