Нет, они совершенно разные.
Однако, и thunks
, и currying
имеют приложения в functional programming
.
Thunks
Thunks - это functional programming
техника, используемая для задержки вычислений.
Это очень помогает нам в контексте redux
.
Итак, что мы делаем, когда мы хотим отложить вычисления, когда мы dispatch
делаем действие? Мы используем thunks
в качестве промежуточного программного обеспечения.
Это очень просто
export default function thunkMiddleware({ dispatch, getState }) {
return next => action =>
typeof action === 'function' ?
action(dispatch, getState) :
next(action);
}
Это в значительной степени реализация thunks
в redux-thunk
.
В основном он просто проверяет, является ли действие dispatched
функция, если не она просто передает ее как есть.
Вы можете прочитать реализацию ядра здесь . Это всего 14 строк.
Curry
Curring - это преобразование одной функции из n аргументов в n функций с одним аргументом в каждой.
Так, например, если у нас есть функция, которая принимает три параметра a, b & c
let result = fn(a,b,c)
Когда мы применяем к ней карри, она становится
let applyCurrying = curriedFn(fn);
let result = applyCurrying(a)(b)(c);
Тривиальной реализацией curriedFn:
const curriedFn = a => b => c => ( do compuation with a,b,c );
При каррировании каждая функция принимает ровно один параметр.