Материалы
Презентация: Scala Implicits.pptx
Проект: lession11.zip
Задание
Необходимо реализовать функциональность работы с комплексными числами.
- Нужно определить методы в трейте org.mai.dep810.complex.Arithmetical необходимые для реализации всех требований
- Тип Complex[A](re: A, im: A) может принимать только переменные типов Int и Double в качестве вещественной и мнимой частей комплексного числа. Для этого нужно реализовать трэйт org.mai.dep810.complex.Arithmetical для операций с типами Int и Double в виде неявного типа.
- Реализовать складывание и вычитание комплексных чисел
- Реализовать неявное преобразование типа Tuple2[A, A] → Complex[A]
- Реализовать неявное преобразование типов ограничивающих тип A в Complex[A] в виде (a: A) → Complex[A](a, 0)
- Расширить классы ограничивающие тип A в Complex[A] методами:
- (a: A).real → Complext[A](a, 0)
- (a: A).imaginary → Complext[A](0, a)
Все необходимые ресурсы находятся в пакете org.mai.dep810.complex. Для проверки функциональности нужно раскоментировать код в объекте org.mai.dep810.complex.Main