作业帮 > 综合 > 作业

mathematica 定义函数时连用两个中括号,如f[a_][x_],这是什么意思,与f[a_,x_]有什么本质区别吗

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/28 02:11:45
mathematica 定义函数时连用两个中括号,如f[a_][x_],这是什么意思,与f[a_,x_]有什么本质区别吗?
mathematica 定义函数时连用两个中括号,如f[a_][x_],这是什么意思,与f[a_,x_]有什么本质区别吗
两者本质上还是有一些细微的不同,主要反映在两个函数的值集的不同,见下图:

可以看到函数 f 的定义是存在 f 的 DownValues,但是函数 g 的定义却是存在 g 的 SubValues 中的,对于一般的不涉及自定义函数属性操作的话,两者区别不大,推荐使用第一种表达方式,但是如果你除了自定义函数外,还要赋予函数一些属性,例如 HoldAll,Listable 等等,那么两者是有一些显著的差异的,稍不注意就会出错,切记只有 DownValues 定义的函数才能使所有的参数全部继承这些属性,而通过 SubValues 定义的函数只有最外面的参数才能继承属性.
下面是一个例子,看了之后就明白了.

上图中 f 和 g 的执行结果是不一样的.

再问: 在下对mathematica理解比较浅薄,能麻烦大侠讲解通俗一点吗?谢谢了!
再答: 我都已经说得这么通俗这么清楚了,还前后举两个了例子,并截图给你展示,你还理解不了,那就没办法了,估计你平常也不会用到的,只要记住用第一种就行。