ifargs = iter(fargs)
posargs = (next((ifargs, iargs)[i in list_of_index]) for i in range(nargs))
return func(*posargs, **fkwargs)
return partially_applied_function
как частично применить произвольный аргумент функции?