Wolfram mathematica mathematica函数中的多语句

Wolfram mathematica mathematica函数中的多语句,wolfram-mathematica,Wolfram Mathematica,我想知道如何在Mathematica中计算函数中的多个语句。 例如 我知道这可以修改为(x+5)^2,但最初我想从函数中的文件中读取数据,并在执行一些数据操作后打印结果。您正在寻找的(缩写;): 括号是必需的,因为的优先级很低 Szabolcs打电话给我,你不能写: f[x_]:= (x = x+5 ; x^2) 有关解释和备选方案,请参阅 ,你应该听的人说,东西应该本地化。我没有在上面这样做,因为我想强调CompoundExpression是一种特别适合于“and then”结构的方法。正

我想知道如何在Mathematica中计算函数中的多个语句。
例如

我知道这可以修改为
(x+5)^2
,但最初我想从函数中的文件中读取数据,并在执行一些数据操作后打印结果。

您正在寻找的(缩写
):

括号是必需的,因为
的优先级很低

Szabolcs打电话给我,你不能写:

f[x_]:= (x = x+5 ; x^2)
有关解释和备选方案,请参阅


,你应该听的人说,
东西
应该本地化。我没有在上面这样做,因为我想强调
CompoundExpression
是一种特别适合于“and then”结构的方法。正如本文所述,这将影响
东西的全局值,这可能是您实际想要做的,也可能不是。如果不是,请参见上面链接的答案,以及:


如果要将多个命令分组并输出最后一个命令,请在它们之间使用分号(;),如

f[y_]:=(x=y+5;x^2)
只是不要使用一个简单的方法;最后一句话


如果您的命令集越来越大,您可能希望使用或之类的作用域结构。

一些人已经提到您可以使用:

但是,如果在表达式中使用与参数中相同的变量
x

f[x_] := (x=x+5; x^2)
然后,在使用数字计算函数时会出现错误。这是因为
:=
基本上定义了lhs模式变量的替换,即
f[1]
计算为(不正确的)
(1=1+5;1^2)

因此,正如Sjoerd所说,有时使用
模块
(或
),但是!)来定位函数变量:

f[x_] := Module[{y}, y=x+5; y^2]
最后,如果需要修改其参数的函数,则可以设置属性
HoldAll

Clear[addFive]    
SetAttributes[addFive, HoldAll]
addFive[x_] := (x=x+5)
然后用它作为

a = 3;
addFive[a]
a

哇,30秒!我将删除我的:),但前提是您使用另一个变量或
HoldAll
或避免明显错误的东西来更正
x=x+5
位@真糟糕!速度有缺点,这太荒谬了。我想知道Wizard先生是否已经发现了时间旅行的秘密。我认为
东西
应该本地化。我认为不管程序大小,都应该本地化变量,因为程序确实在发展,而未本地化的变量会带来麻烦。非常感谢。我想这会管用的。“我觉得Mathematica的帮助很可怜,他们应该让它更实用、更友好……除此之外,我还喜欢它。”newGuy我发现Mathematica文档比我见过的大多数其他程序都优秀。在文档浏览器中输入
tutorial/SequencesOfOperations
,然后单击虚拟书按钮。
f[x_] := Module[{y}, y=x+5; y^2]
Clear[addFive]    
SetAttributes[addFive, HoldAll]
addFive[x_] := (x=x+5)
a = 3;
addFive[a]
a