Julia-在函数中更改方法定义

时间:2018-09-06 11:54:38

标签: function methods julia

这就是我想要的,我有一个函数:f(x,t)=...,其中x是“ true”变量,t是参数。但是,我需要将此函数用作微积分软件包derivative中的参数。此功能需要仅具有一个参数的功能。为此,我想到的是重新定义方法f(x)=f(x,t),在此方法中,我修复了t参数,然后将其传递给了derivative函数。 这必须在另一个功能中完成。

但是,按字面意思返回此错误:

syntax: cannot add method to function argument f

1 个答案:

答案 0 :(得分:4)

我相信由于变量范围的问题,您只需为新功能选择一个不同的名称。您也可以使用匿名函数代替命名定义。

function foo(t_val) 
  newf(x) = f(x, t_val) 
  derivative(newf, otherparams...) 
end

具有匿名功能

function foo(t_val)
    derivative(x -> f(x, t_val), otherparams...) 
end

您还可以为变量分配匿名函数,并将变量用作函数。

function foo(t_val) 
    newf = x -> f(x, t_val) 
    derivative(newf, otherparams...) 
end