SICP 2.5 일반화된 연산 시스템

지난 포스트에서 다룬 복소수 산술 연산과 더 이전에 다룬 유리수 산술 연산, lisp에 존재하는 기본 산술 연산을 활용해 일반화된 산술 연산을 설계하여 보자.
우선 일반화된 산술 프로시저를 다음과 같이 정의하자.

SICP 2.4 요약된 데이터의 여러가지 표현 방식

하나의 프로그램 속에서, 한 종류의 데이터가 여러 표현 방식을 가지게 되는 경우가 있다. 이런 경우에 한 프로그램 속에서 다른 표현 방식이 어떻게 잘 작동하게 하는지를 generic procedure, data-directed programming 등의 방법을 통해 실습해보자.

SICP 문제풀이 : 2.33 ~ 2.35

list를 사용하면 좋은 점 한 가지는, 공통의 인터페이스가 생김으로 인해 프로세스를 패턴화 할 수 있다는 점이다.

SICP 문제풀이 : 2.17 ~ 2.23

scheme 에 기본적으로 존재하는 pair 자료구조를 활용해, list 자료구조를 만들 수 있다.
예를 들어, 1 2 3 4 순서의 list는 아래와 같이 표현할 수 있다.

SICP 문제풀이 : 2.4 ~ 2.6

SW 마에스트로 멘토님의 추천으로 SICP 를 공부중이다. 책에서 사용하는 언어는 Scheme이라고 하는 Lisp의 dialect인데, 지금까지 배운 언어들과는 꽤 다르지만 재밌는 언어다.