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[] 展开
运行
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[] 展开
展开全部
你的函数定义 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,这里跟通常的定义一样。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询