I hope you can help. I am looking for a way to write a function that inserts one item later. Let me show you an example:
def general_poly(L):
"""
L, a list of numbers (n0, n1, n2, ... nk)
Returns a function, which when applied to a value x, returns the value
n0 * x^k + n1 * x^(k-1) + ... nk * x^0
"""
x = 1
res = 0
n = len(L)-1
for e in range(len(L)):
res += L[e]*x**n
n -= 1
return res
I thought I could just give x
a value here and once I do general_poly(L)(10)
it will be replaced so that x = 10
but apparently it is not that easy. What do I have to change / add so that my function works? How does the function know, that the multiplication is the x
? Thanks for your help, guys!
You are being asked to return a function but you are returning the calculated value:
Now
general_poly(L)(10)
will do what you expect but it is probably more useful if you assign it to a value, so it can be called it multiple times, e.g.:You could also rewrite
inner
to: