定义评估

时间:2018-05-22 21:49:52

标签: julia

我对标题感到抱歉,但我找不到更好的标题。

让我们来定义

function test(n)
    print("test executed")
    return n
end

f(n) = test(n)

每当我们致电f时,我们都会

f(5)

test executed

5

有没有办法告诉julia在test的定义中评估一次f

我希望这可能不可能,在这种情况下,我的问题略有不同。如果ar=[1,2,:x,-2,2*:x]有任何方法可以将f(x)定义为ar的总和,即f(x) = 3*x+1

1 个答案:

答案 0 :(得分:4)

如果要根据类型信息进行编译,可以使用@generated functions。但似乎您希望根据输入的运行时值进行编译。在这种情况下,您可能想要进行memoization。有一个库Memoize,它为记忆功能提供了一个宏。