На Codewars.com я столкнулся со следующей задачей:
Создайте функцию,
add
которая складывает числа при последовательном вызове. Так чтоadd(1)
должен вернуться1
,add(1)(2)
должен вернуться1+2
, ...
Хотя я знаком с основами Python, я никогда не встречал функции, которую можно было бы вызывать в такой последовательности, то есть функции, f(x)
которую можно было бы вызвать как f(x)(y)(z)...
. Пока я даже не знаю, как интерпретировать это обозначение.
Как математик я подозреваю, что f(x)(y)
это функция, которая назначает каждой x
функции, g_{x}
а затем возвращает ее, g_{x}(y)
а также для f(x)(y)(z)
.
Если эта интерпретация верна, Python позволит мне динамически создавать функции, что мне кажется очень интересным. Я искал в Интернете последний час, но не смог найти зацепку в правильном направлении. Однако, поскольку я не знаю, как называется эта концепция программирования, это не может быть слишком удивительным.
Как вы называете эту концепцию и где я могу прочитать о ней подробнее?