【发布时间】:2015-03-12 01:28:16
【问题描述】:
我用函数(按名称)作为参数定义了一个新函数,但派生函数不起作用。发生什么事?。代码是
myfun = function(f, a){
fx = function(x) f(x)
print(fx(a)) # = f(a) OK
fp = function(x) eval( D(expression(fx), "x") )
fp(a) # = 1/2*sqrt(a) doesn't work!
}
myfun(sqrt, 4)
# console-------------------------------------------
> myfun(sqrt, 4) # = 1/2*sqrt(4) = 1/4
[1] 2
[1] 0
【问题讨论】:
-
我认为
D(expression(fx), "x")在这种情况下不会起作用。在这种情况下,这不是称为“x”的变量。