Mathematica里Module[]中自定义函数的问题

我用的是Mathematica8.0.4运行Module[{g},g=x;f[x_]=g;Print[f[z]]]输出的是x而不是z这是为什么呢?如妙谛莲花所说,如何解释... 我用的是Mathematica 8.0.4
运行
Module[{g}, g = x; f[x_] = g; Print[f[z]]]
输出的是
x
而不是
z

这是为什么呢?
如 妙谛莲花 所说,如何解释下面的现象呢?

运行
Module[{}, g = x; f[x_] = g; Print[f[z]]]
输出
z

运行
g = x; f[x_] = g; Print[f[z]]
输出
z

请注意这里的Module[]
展开
 我来答
iUkiyoE
2013-08-17 · TA获得超过643个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:393万
展开全部
你的函数定义 f[x]=g,而 g 恒等于 x,也就是函数 f[x] 是一个常数函数恒等于 x,所以不管你赋什么值,输出的都是 x 。注意代码里面的 x 与 x_ 并不是一个东西,这里 x 是一个符号,而 x_ 指的是函数 f 的自变量,确切地说是一个模式,用以匹配等号右边与其相同的对象。
更多追问追答
追问
如 妙谛莲花 所说,如何解释下面的现象呢?

运行
Module[{}, g = x; f[x_] = g; Print[f[z]]]
输出
z

运行
g = x; f[x_] = g; Print[f[z]]
输出
z

请注意这里的Module[]
追答
你可以键入 ?f 来观察几个 函数 f 的区别,
你的第一个定义 f[x$_]=x ,这里函数左边的 x 已被重新命名,右边的 x 只是一个符号罢了。
后面两种定义 f[x_]=x,这里跟通常的定义一样。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式