基本语法
概述

系统支持丰富语法。

操作符及其优先级

系统支持+、-、*等操作符,用户在表达式中可以应用这些操作符。在表达式运算时,系统按照操作符的优先级进行运算,先运算优先级高的,再运行优先级低的。这些操作符及其优先级如表 1所示。

表 1操作符及其优先级
优先级
操作符
含义
示例
结合方向
1(最高)
()
圆括号
f(2)
左到右
2
++
自增(后缀形式)
a ++
左到右
--
自减(后缀形式)
a --
3
!
阶乘
a !
右到左
!!
双阶乘
a !!
4
++
自增(前缀形式)
++ a
右到左
--
自减(前缀形式)
--a
+
+ a
-
-a
5
^
a^ 2
右到左
6
*
a* 2
左到右
/
4/ 2
%
取模
3% 2
7
+
a+ 4
左到右
-
a- 2
8
>
大于
a> 2
左到右
>=
大于等于
a> 2
<
小于
a< 2
<=
小于等于
a<= 2
9
==
等于
a== 2
左到右
!=
不等于
a != 2
10
&&
逻辑与
a && b
左到右
11
||
逻辑或
a || b
左到右
12
? :
条件表达式
a==0 ? b=1 :b=2
右到左
13(最低)
=
赋值运算符
a = 2
右到左
:=
延时赋值运算符
a:=2
+=
加后赋值
a += 2
-=
减后赋值
a -= 2
例1 简单加法。
In[1]:= 2+3
Out[1]= 5
例2 综合运算。
In[2]:= 2+4*5
Out[2]= 22
例3 不仅支持数字,还支持符号。
In[3]:= x+x
Out[3]= 2x
列表

普通的单个元素或表达式比较简单和容易理解,但是有的时候需要用到多个元素,例如一维数组、集合、矩阵等。系统使用列表来支持这样的应用。

输入列表最简单的方式是使用"{"和"}"构造列表。

例4 定义列表。
In[4]:= {a,b,c,d,e}
Out[4]= {a,b,c,d,e}

还可以使用Array、Table等函数来构造,具体请参看列表中各函数的介绍。

字符串

字符串指一个或多个字符,可以进行合并、搜索等操作。字符串可以用一对引号包围起来。

例5 定义列表。
In[5]:= ="abc"
Out[5]= "abc"

关于字符串更多操作请参看字符串中各函数的介绍。

变量
定义变量

可以直接使用变量而无需声明。 变量定义语法如下:

var=exp
var:=exp
var:变量名字,exp:表达式
例6 定义新变量a。
In[6]:= a=2
Out[6]= 2
例7 替换掉原来的变量。
In[7]:= a=1.2
Out[7]= 1.2

用户可以使用ClearClearAll等函数来清除变量或函数等。

函数

所谓函数是指封装了特定功能的代码模块,函数具有函数名、参数、函数体、返回值等部分。函数分为系统函数和自定义函数。

系统函数

系统内置了多个系统函数,涵盖了多个方面,包括算术、代数、复数、三角、线性代数等多个方面。具体请查看系统函数相关内容。

自定义函数

函数定义语法如下:

funcname(vars):=funcbody
其中funcname为函数名字,函数名字不能是数字开头。vars为函数变量。funcbody为函数的定义。
例8 定义函数f(x)。
In[8]:= f(x):=x+1
Out[8]= x+1
立即赋值和运行时赋值

立即赋值是指当程序使用当时的值进行赋值;运行时赋值(或延时赋值)是指程序在运行时动态进行计算,然后赋值。

例9 运行时赋值。在例8已经定义了f(x),现在定义函数g(x),注意定义函数时使用的是运行时赋值":="。
In[9]:= g(x):g(x):=f(x)+2x
Out[9]= 3x+1

这是因为g(x)=f(x)+2x=3x+1。

例10 重新定义函数f(x),替换掉原来的定义(即x+1)。
In[10]:= f(x):=x2
Out[10]= x2

由于g(x)是f(x)的函数,因此现在g(x)也发生了改变: g(x)=f(x)+2x=x2+2x。

例11 重定义 g(x),此时是立即赋值,注意到定义函数时使用的"="而不是":="。
In[11]:= g(x)=f(x)+2
Out[11]= x2+2
例12 再次重新定义函数f(x)。
In[12]:= f(x):=x+3
Out[12]=

注意此时g(x)不会发生改变。

特定值

函数是一种映射,系统允许为某些变量指定特定值。

例13 在例7中,定义了函数f(x):=x+1,我们可以指定其特定值f(1)=4。
In[13]:= f(1):=4
Out[13]= 4

此时f(2)仍然等于3(f(2)=x+1=2+1),但是f(1)+f(2)结果为7,因为f(1)已经重新定义为4了。

Function

Function为匿名函数。

例14 Function示例。
In[14]:= Function(x){x+1}
Out[14]= x+1
Dynamic

系统支持动态函数Dynamic,这样可以实现联动。