在朱莉娅轻松获得世界功能时代的方法?

时间:2017-11-11 15:51:10

标签: julia

我刚刚了解了朱莉娅的世界时代,并且必须说这个概念需要一些时间才能融入其中。为了帮助我接受它,可能有必要能够明确地看到世界时代例子。是否有捷径可寻?

我想我可以以某种方式使我的例子让他们总是遇到世界时代的错误,但我希望有一种不那么令人难以置信的方法来实现这一目标。

1 个答案:

答案 0 :(得分:2)

以下是hack-ish,适用于0.6.1,但可能会稍后破解:

min_world(f) = (methods(f)).ms[1].min_world

macro cur_world()
    :(min_world(x -> $(rand())*x))
end

它的工作原理如下:

julia> f(x) = 2x
f (generic function with 1 method)

julia> @cur_world()
21827

julia> g(x) = sqrt(x)
g (generic function with 1 method)

julia> @cur_world()
21829

julia> min_world(f)
21826

julia> min_world(g)
21828

在任何实际代码中使用世界年龄计数器听起来都是错误的方法。