mirror of
https://github.com/valitydev/erlang-school.git
synced 2024-11-06 01:05:17 +00:00
2.8 KiB
2.8 KiB
erlang-school
Лекция 1
Секвентальный эрланг часть 1
- shell + hello world
- типы данных
- int, float, list, tuple, binary, atom, строгая типизация
- "переменные" и паттерн матчинг
- модули, функции, компиляция (модуль — единица деления, экспорты, загрузка/выгрузка, атрибуты, module_info, циклические зависимости)
- функции, клозы, гарды
- case/if
- анонимные функции
- программирование без циклов: рекурсия, хвостовая рекурсия, fold, map, пример: числа фибоначчи
Задачи
- safe_handle макрос который ловит исключения от функтора и возвращает {error, {Class, Reason, Stacktrace}}
- verbose_handle макрос который ловит исключения от функтора, пишет в консоль и прокидывает дальше
- maps:fold
- определить макрос для LOG, который будет при задефайненом debug выводить в лог строку вида {модуль,строка}: форматированное сообщение
- транспонировать матрицу записанную в csv файле
- одномерный эксель с обратной польской нотацией
Лекция 2
Секвентальный эрланг часть 2
- оптимизация хвостовой рекурсии
- лист генераторы
- битсинтаксис (кратко)
- рекорды
- мапы
- исключения (exit/throw/error, catch, try...catch)
- препроцессинг (include/include_lib/define/MODULE.../ifdef...)
Задачи
- lists:seq/filter/zip
- safe_handle макрос который ловит исключения от функтора и возвращает {error, {Class, Reason, Stacktrace}}
- verbose_handle макрос который ловит исключения от функтора, пишет в консоль и прокидывает дальше
- maps:fold
- определить макрос для LOG, который будет при задефайненом debug выводить в лог строку вида {модуль,строка}: форматированное сообщение
- транспонировать матрицу записанную в csv файле
- одномерный эксель с обратной польской нотацией (без унарного минуса, деление целочисленное, без детектора циклов)