Я наткнулся на следующую проблему при вызове Python: написать функцию, которая удовлетворяет следующему правилу для любого числа вызовов функций.
f()()()()()(s) == 'fooooo' + s;
пример:
f('it') == 'fit';
f()('x') == 'fox';
f()()('bar') == 'foobar';
f()()()('l') == 'foool';
Функция должна быть без сохранения состояния и не должна использовать никаких переменных вне области видимости.
Подпись функции была:
def f(s=None):
# Your code here
Я подумал, что для того, чтобы иметь возможность объединять несколько вызовов, нам придется возвращать функцию, когда в функцию не передана ни одна строка, но не могу понять, как построить ожидаемую строку без внешних переменных. Предложения?
def f(s=None):
if s is None:
# concatenate an 'o'?
return f
else:
# Last call, return the result str.
return s