是eval(Expr(:call,m.f,x))好朱莉娅?

时间:2016-09-19 08:21:32

标签: eval julia higher-order-functions

我希望得到一些关于这个成语的指导

h(x) = x^2

type mytype
    f::Function
end
function doit(m::mytype,x)
    eval(Expr(:call,m.f,x))
end

m = mytype(h)
doit(m,3)
当我想以编程方式评估函数时,

是好julian。所以,我有一个函数f以某种类型存储,在某一点上我想评估它。

1 个答案:

答案 0 :(得分:4)

m.f(x)似乎和eval(Expr(:call, m.f, x))一样好:

h(x) = x^2

type mytype
    f::Function
end
function doit(m::mytype,x)
   m.f(x)
end

m = mytype(h)
doit(m,3)

另外,您不需要doit并且可以直接致电m.f(3),至少在您的特定示例中是这样:

h(x) = x^2

type mytype
    f::Function
end

m = mytype(h)
m.f(3)
相关问题