В функциональных языках это позволяет создавать структуры вроде бесконечных списков, которые в обычных условиях невозможны в императивных языках программирования, где очередность команд имеет значение.
🗄Monoid (моноид) — объект с функцией, которая «комбинирует» объект с другим объектом того же типа.
🗄Monad (монада) — объект с функциями of и chain. chain похож на map, но он производит разложение вложенных объектов в результате.
🗄Comonad (комонада) — объект с функциями extract и extend. Extract берет значение из функтора. Extend выполняет функцию на комонаде. Функция должна вернуть тот же тип, что комонада.
🗄Applicative Functor (аппликативный функтор) — объект с функцией ap. ap применяет функцию в объекте к значению в другом объекте того же типа. Это полезно, когда есть два объекта, и нужно применить бинарную операцию на их содержимом.
🗄Morphism (морфизм) — функция трансформации.
🗄Endomorphism (эндоморфизм) — функция, у которой ввод и вывод — одного типа.
🗄Isomorphism (изоморфизм) — пара структурных трансформаций между двумя типами объектов без потери данных. Например, двумерные координаты можно хранить в массиве [2,3] или объекте {x: 2, y: 3}.
🗄Setoid — объект, у которого есть функция equals, которую можно использовать для сравнения объектов одного типа.
🗄Semigroup (полугруппа) — объект с функцией concat, которая комбинирует его с другим объектом того же типа.
🗄Foldable — объект с функцией reduce, которая трансформирует объект в другой тип.
🗄Type Signatures (сигнатуры типа) — определяет входящие и возвращаемые типы для функции, иногда включая число аргументов, типы аргументов и порядок аргументов, содержащихся в функции.
🗄Option (опцион) — тип-объединение с двумя случаями: Some и None. Полезно для композиции функций, которые могут не возвращать значения.
Источник:
🧵Читать в Твиттере
🧵Читать в Thread Reader App (если Твиттер не открывается)
#вопросы_с_собесов #medium
Жаргон функционального программирования
тред ⬇️
(Возможно кому-то поможет на собеседовании)