Обложка канала

Библиотека программиста

76290 @proglibrary

Библиотека программиста — обзоры книг, видеолекции и образовательные статьи, которые помогут вам улучшить процесс познания в разработке.

Библиотека программиста

3 года назад
Открыть в
Жаргон функционального программирования: 🗄Arity (арность) — количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: «-ary» и «-ity». 🗄Higher-Order Functions (функции высокого порядка) — функция, которая принимает функцию в качестве аргумента и/или возвращает функцию. 🗄Partial Application (частичное применение) — частичное применение функции означает создание новой функции с пред-заполнением некоторых аргументов оригинальной функции. 🗄Currying (каррирование) — процесс конвертации функции, принимающей несколько аргументов, в функцию, принимающую один аргумент за раз. При каждом вызове она принимает один аргумент и возвращает функцию, принимающую один аргумент до тех пор, пока все аргументы не будут обработаны. 🗄Auto Currying (автоматическое каррирование) — трансформация функции, принимающей несколько аргументов, в новую, если передать меньшее чем предусмотрено количество аргументов, то она вернет функцию, которая принимает оставшиеся аргументы. Если функция получает правильное количество аргументов, то она исполняется. 🗄Function Composition (композиция функций) — соединение двух функций для формирования новой функции, в которой вывод первой функции является вводом второй. 🗄Purity (чистота) — функция является чистой, если возвращаемое ей значение определяется исключительно вводными значениями, и функция не имеет побочных эффектов. 🗄Side effects (побочные эффекты) — у функции есть побочные эффекты если кроме возврата значения она взаимодействует (читает или пишет) с внешним изменяемым состоянием. 🗄Idempotent (идемпотентность) — функция является идемпотентной если повторное ее исполнение производит такой же результат. 🗄Point-Free Style (бесточечная нотация) — написание функций в таком виде, что определение неявно указывает на количество используемых аргументов. Такой стиль обычно требует каррирования или другой функции высокого порядка (или в целом — неявного программирования). 🗄Predicate (предикат) — функция, которая возвращает true или false в зависимости от переданного значения. Распространенный случай использования предиката — функция обратного вызова (callback) для фильтра массива. 🗄Categories (категории) — объекты с функциями, которые подчиняются определенным правилам. Например, моноиды. 🗄Value (значение). Все, что может быть присвоено переменной. 🗄Constant (константа) — переменная, которую нельзя переназначить после определения. Константы обладают референциальной прозрачностью или прозрачностью ссылок (referential transparency). То есть, их можно заменить значениями, которые они представляют, и это не повлияет на результат. 🗄Functor (функтор) — объект, реализующий функцию map, которая при проходе по всем значениям в объекте создает новый объект, и подчиняется двум правилам: сохраняет нейтральный элемент (identity); поддерживает композицию. 🗄Pointed Functor (указывающий функтор) — объект с функцией of с любым значением. В ES2015 есть Array.of, что делает массивы указывающим функтором. 🗄Lifting — когда значение помещается в объект вроде функтора. Если «поднять» (lift) функцию в аппликативный функтор, то можно заставить ее работать со значениями, которые также присутствуют в функторе. 🗄Referential Transparency (прозрачность ссылок) — если выражение можно заменить его значением без влияния на поведение программы, то оно обладает прозрачностью ссылок. 🗄Lambda (лямбда) — анонимная функция, которую можно использовать как значение. Лямбды часто передают в качестве аргументов в функции высокого порядка. Лямбду можно присвоить переменной. 🗄Lambda Calculus (лямбда-исчисление) — область информатики, в которой функции используются для создания универсальной модели исчисления. 🗄Lazy evaluation (ленивые вычисления) — механизм вычисления «при необходимости», с задержкой вычисления выражения до того момента, пока значение не потребуется.👇