1. 다음의 위키문서를 참고하여 복소수, 허수, 실수, 무리수, 유리수, 정수, 자연수와 같은 수학의 수체계를 모델링하여 클래스 다이어그램으로 나타내시오.
고려사항
1) root(24) 는 무리수인가, 유리수인가?
2) root(3) 은 무리수인가, 유리수인가?
3) root(24) ÷ root(3) 은 무리수인가, 유리수인가, 정수인가, 자연수인가?
4) 3 + root(2)i 는 복수수인가, 실수인가?
5) 3 - root(2)i 는 복수수인가, 실수인가?
6) {3 + root(2)*i} * {3 - root(2)*i } 는 복수수인가, 실수인가, 무리수인가, 유리수인가, 정수인가, 자연수인가?
2. 위에서 작성한 클래스다이어그램에 사칙연산을 적용하시오.
연산의 결과로 다음과 같은 판별이 가능한지 확인하시오.
2 + root[3] = 2 + root[3], (유리수) + (무리수) = ( 무리수)
root[24] ÷ root[6] = 2 , (무리수) ÷(무리수) = (정수, 자연수, 유리수)
3. 연산을 확장해서 ∑ 와 같은 복합 연산자를 정의하시오.
중학교 수학시간
이거 모델링하고 구현해보면 의외로 할게 많음.
이정도 타입시스템은 하스켈 하다보면 일상적으로 만들었다 지웠다 하는데 - _-)
아니 그게 아니라, 이거는 ((모델링))하는 능력을 키우는거임. 답을 구하는게 목적이 아니라 얼마나 간결하고 유연하게 설계할 수 있는지가 핵심임. 답을 구하는건 설계의 결과이고 그게 목적은 아님..
이정도는 모델도 안된다능...이랄까 온갖 변태짓을 다 하는 수학과가 얘기해도 설득력이 없습니다.