В Эликсире много возможностей для эффективного написания кода. Новички, осваивая язык, проникаются его различными возможностями и начинают их применять повсеместно. В статье речь пойдет про перегрузку функций с паттернматчингом аргументов Эликсир позволяет осуществлять перегрузку функций, как, например, Java. Достаточно объявить две одноименные функции в одном модуле, например, рекурсивный обход коллекции с умножением каждого элемента на 2. Разберем еще один пример: создадим функцию, которая сортирует разные типы данных, в данном случае — list и tuple. Я не просто так выделил фразу “разные типы данных”, ведь в первую очередь перегрузка функций появилась в типизированных языках и используется при передаче аргументов разных типов или разном количестве аргументов. Это нормальные случаи использования перегрузки функции и паттернматчинга. Теперь я хочу показать несколько примеров из реальных проектов, в которых паттернматчинг и перегрузка функций использовались во зло. Пример №1 Модуль Help