假設海格爲了功能我給這個二項式
def sum(term, a, next, b):
if (a>b):
return 0
else:
return term(a) + sum(term, next(a), next, b)
和
def poly_while(coefficients, x):
i, result = 0, 0
while i < len(coefficients):
result += coefficients[i] * (x ** i)
i = i + 1
return result
我想寫一個使用sum
def poly(coefficients, x):
return sum(lambda a: coefficients[a]*(x**(a)),0, lambda x: x + 1, len(coefficients))
什麼是錯這裏HOF?
這裏是輸入
poly((1, 2, 3, 4, 5), 3) #1(3^0) + 2(3^1) +3(3^2) +4(3^3) + 5(3^4) = 547
poly((1, 2, 3, 4, 5), 1) #15
poly((), 3) #0
請注意,'sum'和'next'都是Python中內置函數的名稱。雖然不禁止將名稱用於其他目的,但這樣做可能是一個糟糕的主意(您可能會迷惑自己或其他人)。 – Blckknght