为什么在使用diff定义函数时,我必须在maple中使用unapply运算符?

时间:2016-07-27 22:42:20

标签: maple unapply

我是枫的绝对初学者,并且有理解以下内容的问题:

以下不起作用:

f:=(x)->x^2;
df_wrong:=(x)->diff(f(x),x);

由于df_wrong(1);总是产生以下"错误,(在df_wrong中)无效输入:diff收到1,这对第二个参数无效 &#34 ;.过了一段时间后,我发现以下内容解决了这个问题:

df_correct := unapply(diff(f(x), x), x);

df_correct(1);以来。任何人都可以解释一下使用df_wrong的问题是什么问题,以及为什么unapply()可以解决这些问题?

我已经检查了unapply()的Maple解释,但对我来说它仍然不太清楚。

提前致谢!

1 个答案:

答案 0 :(得分:2)

在您的错误版本中,您的函数使用x作为函数运算符。当您输入1时,df_wrong(1)被解析为diff(f(1),1),这是无意义的:您无法区分wrt。一个常数。

unapply功能的好处是它返回一个功能操作符。这意味着您可以操作然后将其用作运算符。这与操作员分配命令x -> ...形成对比,后者使x成为整个右手边的操作员。