×
Вы действительно хотите открыть доступ к тестированию по курсу Scala Углубленный на 40 дней?
ВИДЕОУРОК №11. Функторы
Рассмотреть функции высшего порядка, а именно процесс карринга функций, абстракции управляющих конструкций, частично определённые функции (partial function). Научиться создавать partial function, узнать для чего и как использовать такие функции.
Рассмотреть механизм сопоставления с образцом в языке Scala. Изучить сопоставление с типами, массивами, списками, кортежами, case-классами, вложенными структурами.
Изучить обобщённые классы и функции. Рассмотреть границы изменения типов, представления и контекста. Рассмотреть ко- и контравариантные позиции.
Рассмотреть все типы, которые может предложить язык Scala, в том числе специализированные. Изучить типы-одиночки, проекции типов, цепочки, составные, инфиксные, экзистенциальные, абстрактные типы и типы высшего порядка.
Научиться использовать неявные преобразования для расширения возможностей существующих классов. Рассмотреть границы контекста и неявный параметр подтверждения.
Рассмотреть абстрактные элементы. Научиться использовать абстрактные элементы с помощью практического примера.
Узнать, что такое экстракторы, для чего они используются. Рассмотреть шаблоны без переменных и с одной переменной, экстракторы переменного количества аргументов, последовательностей. Сравнить экстракторы и case-классы.
Раскрыть понятие и назначение Future в языке Scala. Рассмотреть основные методы работы с Future, такие как преобразование, создание, фильтрация, обработка исключительных ситуаций и другие.
Научиться применять полученные знания о языке Scala для разработки в функциональном стиле. Ознакомиться с разными функциональными приёмами, такими как обработка ошибок без использования Exception, использование чисто функционального состояния и чисто функционального параллелизма. Рассмотреть такие свойства как strictness и laziness, а также функциональные структуры данных.
Изучить моноиды и монады. Рассмотреть применение моноидов, их композицию, определение монады, её применение и законы.
Изучить функторы. Рассмотреть разницу между монадой и аппликативным функтором. Изучить Applicative трейт, правила аппликатива, функторы Traversable.
Понять назначение тестирования программного обеспечения. Рассмотреть разные виды тестирования. Научиться писать юнит-тесты с помощью фреймворка ScalaTest.