Юлия - Изменить определение метода внутри функции - PullRequest
0 голосов
/ 06 сентября 2018

Итак, вот что я хочу, у меня есть функция: f(x,t)=..., где x - это «истинная» переменная, а t - это параметр. Однако мне нужно использовать эту функцию в качестве параметра в пакете Calculus derivative. Эта функция требует функции только с одним параметром. Для этого я подумал о том, чтобы переопределить метод f(x)=f(x,t), в котором я фиксирую параметр t перед передачей его в функцию derivative. Это должно быть сделано в другой функции.

Однако, выполнение этого буквально возвращает эту ошибку:

syntax: cannot add method to function argument f

1 Ответ

0 голосов
/ 06 сентября 2018

Я полагаю, что из-за проблем с переменной областью вы должны просто выбрать другое имя для своей новой функции. Вы также можете использовать анонимные функции вместо именованных определений.

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
...