假设我有一个纯函数,它需要相当长的时间才能运行。主要是我想用相同的参数多次调用这个函数。
我的最终问题是,我应该将返回值存储在一个变量中并使用它还是只是多次调用该函数?哪种方式需要更少的计算?
现代语言的编译器(如果有的话)是否能够判断一个函数是否是纯函数?如果是,编译器是否能够优化同一块中的多个调用?如果是,那么我只调用这些函数比使用占位符变量更有意义(因为我将浪费计算来执行赋值/绑定名称)?
编辑:这是一个例子
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)
提前致谢。