#python #function #parentheses #chain #unary-function
#python #функция #круглые скобки #цепочка #унарная функция
Вопрос:
Я наткнулся на этот вопрос Codewars:
Ваша задача — написать функцию более высокого порядка для объединения в цепочку списка унарных функций. Другими словами, она должна возвращать функцию, которая выполняет сгиб влево для заданных функций.
chained([a,b,c,d])(input)
Должна давать тот же результат, что и
d(c(b(a(input))))
На самом деле мне все равно, каков ответ на проблему, я могу получить к нему доступ на сайте. То, что мне действительно нужно объяснить, — это первая функция, «chained». Я никогда не видел подобную функцию с 2 наборами аргументов в отдельных скобках, поэтому я полагаю, что интерпретирую ее неправильно.. что это значит? Спасибо за помощь
Ответ №1:
Это не функция с двумя наборами параметров, а функция, которая возвращает другую функцию, выполняя функции, заданные в качестве параметров, одну за другой.
Может быть, будет понятнее, если вы разделите строку на две строки:
f = chained([a,b,c,d]) # call `chained` with functions as parameters
f(input) # call result of `chained`, which is another function
Ответ №2:
Как указано в вопросе, chained
это функция более высокого порядка — она примет один аргумент — список функций и вернет / выдаст функцию. Эта функция вызывается путем передачи одного аргумента — в данном случае другой функции input
.