Axioms on Types
$$ \begin{align} g(f(1, f(2, f(3, t)))) &= 1 \\ \text{where } t \in T \nonumber \\ g(f(1, f(2, f(3, t)))) &= 3 \\ \text{where } t \in T \nonumber \\ f(f(f(t, i, 1), i, 2), i, 3) &= f(t,i,3) \\ g(f(f(f(t, i, 1), j, 2), k, 3), i) &= 1 \nonumber \\ \text{where } t \in T \nonumber \end{align} $$
- (1), (2), (3)에서 $T$는 제 각기 어떤 데이터 타입인가요?
- (1), (2), (3)에서 함수 $g$와 $f$는 $T$의 어떤 연산에 대응하나요?
귀띔
- 연산(Operation)을 중심으로 Data Type을 정의하고 이해하는 방식을 맛 보이려고 만든 수수께끼입니다.
공부 거리
- J.Craig Cleaveland, An Introduction to Data Types, Addison-Wesley, Jan. 1987, pp 200~216
- Barbara Liskov, Stephen Zilles, Programming with abstract data types, ACM SIGPLAN Notices, Volume 9, Issue 4, April 1974, pp 50~59, https://doi.org/10.1145/942572.807045
- Ellis Horowitz and Sartaj Sahni, Fundamentals of Data Structures, 1976
마지막으로 고친 날