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

问题描述 投票:0回答:1

所以这就是我想要的,我有一个函数:f(x,t)=...其中x是“真正的”变量而t是一个参数。但是,我需要将此函数用作Calculus包的derivative中的参数。此功能需要一个只有一个参数的功能。为此,我想到的是重新定义一个方法f(x)=f(x,t),我在将t参数传递给derivative函数之前修复它。这必须在另一个功能中完成。

但是,执行此操作会返回此错误:

syntax: cannot add method to function argument f

function methods julia
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.