比方说,我有一个纯功能,这需要花费大量的时间来运行。 而在主要我想多次调用这个函数与相同的参数。使用变量来存储函数调用?
我最终的问题是,我应该将返回值存储在变量中并使用它,或者多次调用该函数?哪种方式需要更少的计算?
现代语言(如果有的话)的编译器能够判断一个函数是否纯粹?如果是的话,编译器是否能够优化掉同一个块中的多个呼叫?如果是的话,那么我调用这些函数比使用占位符变量更合理(因为我会浪费计算来完成赋值/绑定名称)?
编辑:这里有一个例子
if myPureFunction(a,b) == 1:
print(1)
elif myPureFunction(a,b) == 2:
print(2)
elif myPureFunction(a,b) == 3:
print(3)
else:
print(4)
与
var = myPureFunction(a,b)
if var == 1:
print(1)
elif var == 2:
print(2)
elif var == 3:
print(3)
else:
print(4)
在此先感谢。
这是一个纯函数吗? –
是的,我想假设这是一个纯粹的功能 – Joohwan
如果你不知道这些问题的答案,那么你不必担心会失败,那么你担心这里和那里的循环可能是错误的(不是它不能被优化,只是你可能会错过更重要的东西)。 –