【发布时间】:2011-01-19 18:23:47
【问题描述】:
我有一个函数规范,说明它应该评估一个变量的多项式函数。函数的系数以列表形式给出。它还接受变量的值作为实数。
例如:eval(2, [4, 3, 2, 1]) = 26 (1*x^3 + 2*x^2 + 3*x^1 + 4*x^0,其中 x = 2)
这是python中的函数,但我不确定如何将其转换为SML。我很难找到一种在不更改函数参数的情况下将迭代值传递给它的方法。它需要保持一个真正的 * 真正的列表 -> 真正的功能。
def eval(r, L):
sum = 0
for i in range(0, len(L)):
sum = sum + L[i] * (r ** i)
return sum
【问题讨论】:
-
尽量不要将你的函数命名为
eval。已经有一个内置的 eval (docs.python.org/library/functions.html#eval) 函数可以做完全不同的事情。 -
名称在规范中。 python代码仅供参考。至少,eval 应该是 sml 中的名称。
-
哦,最好使用霍纳方案 (en.wikipedia.org/wiki/Horner_scheme) 评估多项式。
标签: python recursion parameters functional-programming sml