add two first lectures

This commit is contained in:
Petr Kozorezov 2018-07-26 12:26:30 +03:00
parent 1b2f69b684
commit 419f53994e

View File

@ -1 +1,47 @@
# erlang-school
# erlang-school
## Лекция 1
### Секвентальный эрланг часть 1
1. shell + hello world
2. типы данных
1. int, float, list, tuple, binary, atom, строгая типизация
3. "переменные" и паттерн матчинг
4. модули, функции, компиляция (модуль — единица деления, экспорты, загрузка/выгрузка, атрибуты, module_info, циклические зависимости)
5. функции, клозы, гарды
6. case/if
7. анонимные функции
8. программирование без циклов: рекурсия, хвостовая рекурсия, fold, map, пример: числа фибоначчи
### Задачи
1. safe_handle макрос который ловит исключения от функтора и возвращает {error, {Class, Reason, Stacktrace}}
2. verbose_handle макрос который ловит исключения от функтора, пишет в консоль и прокидывает дальше
3. maps:fold
4. определить макрос для LOG, который будет при задефайненом debug выводить в лог строку вида {модуль,строка}: форматированное сообщение
5. транспонировать матрицу записанную в csv файле
6. одномерный эксель с обратной польской нотацией
## Лекция 2
### Секвентальный эрланг часть 2
1. оптимизация хвостовой рекурсии
2. лист генераторы
3. битсинтаксис (кратко)
4. рекорды
5. мапы
6. исключения (exit/throw/error, catch, try...catch)
7. препроцессинг (include/include_lib/define/MODULE.../ifdef...)
### Задачи
0. lists:seq/filter/zip
1. safe_handle макрос который ловит исключения от функтора и возвращает {error, {Class, Reason, Stacktrace}}
2. verbose_handle макрос который ловит исключения от функтора, пишет в консоль и прокидывает дальше
3. maps:fold
4. определить макрос для LOG, который будет при задефайненом debug выводить в лог строку вида {модуль,строка}: форматированное сообщение
5. транспонировать матрицу записанную в csv файле
6. одномерный эксель с обратной польской нотацией (без унарного минуса, деление целочисленное, без детектора циклов)