Skip to content

yzh44yzh/elixir_course

Repository files navigation

Учебный курс по языку программирования Эликсир. Часть 1.

Курс рассчитан на программистов, уже владеющих каким-либо языком программирования, и желающим изучить Эликсир. Однако я верю, что он будет полезен и новичкам в программировании.

Курс содержит большое количество упражнений, домашних заданий и курсовой проект.

Курс доступен в формате видео-лекций и live coding на моём ютуб-аккаунте.

Формат электронной книги есть в планах, но пока не реализован.

Поддержать работу над курсом можно на Boosty.

Часть 1. Основы языка.

Урок №1. Первое знакомство с Elixir.

01.01. Решаем задачу FizzBuzz.

01.02. Интерактивная консоль (iex).

Урок №2. История, мотивация.

02.01. Немного истории.

02.02. Важные свойства BEAM.

02.03. Свойства Эликсир.

02.04. Недостатки BEAM.

02.05. Сфера применения.

Урок №3. Типы данных и операции над ними.

03.00. Типы данных.

03.01. Целые числа (Integer).

03.02. Числа с плавающей точкой (Float).

03.03. Булевые значения (Boolean).

03.04. Атомы и кортежи (Atom & Tuple).

03.05. Списки (List).

03.06. Словари (Map).

03.07. Строки и бинарные данные (String & Binary).

03.08. Системные типы (System Types).

03.09. Сложные типы (Complex Types).

Урок №4. Управление потоком выполнения.

04.01. Pattern Matching.

04.02. Pattern Matching для Map.

04.03. Конструкция case, тела функций, охранные выражения.

04.04. Конструкции cond и if.

04.05. Keyword list, синтаксический сахар и макросы.

Урок №5. Устройство списков. Рекурсивные функции с аккумуляторами.

05.01. Иммутабельность.

05.02. Устройство списков.

05.03. Рекурсия.

05.04. Хвостовая рекурсия.

05.05. Рекурсивные функции с аккумуляторами.

05.06. Неограниченная рекурсия (Unbounded recursion).

Урок №6. Функции высшего порядка.

06.01. Map, Filter.

06.02. Reduce (Fold).

06.03. Модуль Enum.

06.04. Конструкторы списков.

06.05. Модуль Stream.

Урок №7. Пользовательские типы данных.

07.01. Создание проекта.

07.02. Моделирование предметной области.

07.03. Использование Map.

07.04. Использование Struct.

07.05. Struct с указанием типов.

07.06. Алгебраические типы данных.

07.07. Протокол.

07.08. Record.

07.09. Что такое функциональное программирование?

Урок №8. Обработка ошибок.

08.01. Исключения.

08.02. Классы исключений.

08.03. Пользовательские типы исключений.

08.04. Defensive Programming vs Let It Crash.

Урок №9. Композиция функций.

09.01. Задача на композицию функций.

09.02. Решение 1. Вложенные case.

09.03. Решение 2. Каждый case в отдельной функции.

09.04. Решение 3. Использование исключений.

09.05. Решение 4. Монада Result и оператор bind.

09.06. Решение 5. Pipeline.

09.07. Решение 6. do-нотация.

09.08. Что такое монада?

Курсовой проект Work Report.

Часть 2. Многопоточность и OTP.

Находится здесь.

About

Elixir language training course, part 1

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages