Часто можна використовувати більш загальні функції для визначення більш конкретних функцій.
- Реалізуйте
power(exp, n)
, те ж саме що іMath.pow(n, exp)
але з оберненим порядком аргументів - Реалізуйте функцію
square(n)
, яка повертає квадрат числа. bind()
функціюpower(exp, n)
, щоб отримати функціюcube(n)
.
Використайте функцію схожу на конструктор, яка повертає функцію для визначення різних специфічних функції.
Використайте вкладені функції для функціонального успадкування.
Використайте метод bind() до існуючої функції для застосування попередніх аргументів та отримання нової функції.
Дана функція someFunc()
, яка приймає n
аргументів (наприклад, 3 аргументи).
Реалізуйте функцію curry()
, яка породжує іншу функцію, що приймає аргументи функції
someFunc()
частково та передає їх до someFunc()
:
const func = curry(3, someFunc);
func(a)(b)(c) === someFunc(a, b, c) // true
func(a, b)(c) === someFunc(a, b, c) // true
func(a)(b, c) === someFunc(a, b, c) // true
Реалізуйте функцію одного аргументу, яка передає свій аргумент іншій функції і повертає об'єкт, який має таку саму функцію:
func(a).func(b).func(c) === someFunc(a, b, c) // true