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

why do I have to use the unapply operator in maple, when defining a function by diff?

我是 maple 的绝对初学者,在理解以下内容时遇到问题:

以下无效:

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

因为 df_wrong(1); 总是产生以下“错误,(在 df_wrong 中)无效输入:diff 收到 1,这对于它的第二个参数无效 ”。一段时间后,我发现以下解决了这个问题:

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

df_correct(1);。谁能解释一下使用 df_wrong 的问题是什么,也许为什么 unapply() 可以解决这些问题?

我已经查看了unapply()的Maple解释,但我还是不太清楚。

提前致谢!

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

unapply 函数的好处在于它 returns 是一个函数运算符。这意味着您可以 操纵事物,然后 将其用作运算符。这与使 x 成为整个右侧的运算符的运算符分配命令 x -> ... 相反。