erlang-school/README.md
2018-07-26 12:27:15 +03:00

2.8 KiB
Raw Permalink Blame History

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...)

Задачи

  1. lists:seq/filter/zip
  2. safe_handle макрос который ловит исключения от функтора и возвращает {error, {Class, Reason, Stacktrace}}
  3. verbose_handle макрос который ловит исключения от функтора, пишет в консоль и прокидывает дальше
  4. maps:fold
  5. определить макрос для LOG, который будет при задефайненом debug выводить в лог строку вида {модуль,строка}: форматированное сообщение
  6. транспонировать матрицу записанную в csv файле
  7. одномерный эксель с обратной польской нотацией (без унарного минуса, деление целочисленное, без детектора циклов)