Похожие презентации:
Метод каррирования функции
1.
Метод каррированияфункции
На примере javascript
2.
Каррирование• Каррирование – это преобразование функции с множеством аргументов в набор
вложенных функций с одним аргументом.
• При
использовании новой конструкции каждая функция, кроме последней,
возвращающей результат вычислений, принимает аргумент и возвращает другую
функцию, также способную принять аргумент и возвратить другую функцию.
Обычная
функция
Каррированная
функция
3.
• Чтобы лучше разобраться, можно расписать вызов данной функции в таком виде:4.
Преимущества каррирования• Удобство вызова функций: если функция принимает несколько аргументов и вы хотите
вызвать ее с разными наборами аргументов, каррирование позволяет вам создать цепочку
функций, где каждый элемент принимает один аргумент, и вам не нежно создавать отдельные
функции для каждого набора аргументов.
• Возможность отложить вычисление результата: Когда вы создаете цепочку функций, вы
можете отложить вычисление последнего аргумента, что может быть полезно в некоторых
ситуациях, например, когда вы хотите вычислить аргумент только при необходимости.
• Возможность создания пользовательских
функций высшего порядка: Каррирование
позволяет создавать пользовательские функции высшего порядка, которые принимают другую
функцию в качестве аргумента и возвращают результат после выполнения этой функции с
заданными аргументами.
• Улучшение
читаемости кода: Использование каррирования может сделать код более
читаемым, поскольку каждая функция в цепочке является самодостаточной и выполняет свою
роль в процессе вызова исходной функции.
• Возможность параллельного выполнения: Если аргументы функции могут быть вычислены
независимо друг от друга, каррирование может позволить выполнять эти вычисления
параллельно, что может значительно ускорить выполнение функции.
5.
Частичное применение аргументов• Мы можем вызвать функцию, которая уже содержит один из аргументов. В таком
она будет принимать все остальные параметры, добавляя заданный:
6.
• Каррирование и частичное применение функций может оказаться полезным вразличных ситуациях. Например – при
подходящих для повторного использования.
• Частичное
разработке
небольших
модулей,
применение
функций позволяет
облегчить
использование
универсальных модулей. Например, есть интернет-магазин, в коде которого
имеется функция, которая используется для вычисления суммы к оплате с учетом
скидки.
7.
• Пример простой системы логирования.8.
Автоматическое каррированиефункции