常用记号和表示惯例

函数名
内置函数的名称遵循一些规则指南.
函数变量
内置函数所作用的主表达式或对象经常作为函数的第一个变量. 辅助参数作为接下来的变量出现.
下面是一些例外情况:
选项
一些内置函数可以采用选项(options). 每个选项具有一个名称,可以表示为一个符号,或者在一些情况下可以表示为一个字符串. 通过给出形如 name->value 或者 name:>value 的规则,设置选项. 这样的规则必须出现在函数的其它变量之后. 可以按任何顺序给出不同选项的规则. 如果用户不能对特定选项明确地给出规则,则使用该选项的默认设置.
Options[f]
给出所有与 f 相关联的选项的默认值
Options[expr]
给出在特定表达式中设置的选项
Options[expr,name]
给出表达式中选项 name 的设置
AbsoluteOptions[expr,name]
给出 name 的绝对设置,即使实际设置为 Automatic
SetOptions[f,name->value,]
对与 f 相关联的选项设置默认规则
CurrentValue[name]
给出前端选项 name 的选项设置;可以在赋值操作的左端使用来设置选项
选项上的操作.
元素编号
n
元素 n (从 1 开始)
-n
从尾部开始的元素 n
0
头部
元素编号.
序列规格
All
所有元素
None
没有元素
n
元素 1n
-n
最后 n 个元素
{n}
只包含元素 n
{m,n}
元素 mn(闭区间)
{m,n,s}
元素 mn,步长为 s
子序列.
序列规格 {m,n,s} 对应于元素 mm+sm+2s,直至不大于 n 的最大元素.
序列规格在函数 DropOrderingStringDropStringTakeTakeThread 中使用.
层规格
n
1n
Infinity
1Infinity
{n}
只包含层 n
{n1,n2}
n1n2
Heads->True
包含表达式的头部
Heads->False
不包含表达式的头部
层规格.
在表达式中,对应于非负整数 n 的层被定义为由 n 个索引指定的部分组成. 一个负的层数 -n 表示深度为 n 的表达式的所有部分. 表达式的深度,Depth[expr],是用来指明任意部分的索引的最大值,再加1. 除非设置选项 Heads->True,否则层的计数不包括表达式的头部. 层 0 是整个表达式. 层 -1 包含所有没有子部分的符号和其它对象.
{n1,n2} 指定的层的范围包括所有树中的既不在层 n1 之上,也不在层 n2 之下的部分. ni 不必具有相同的符号. 因此,例如,{2,-2} 指明了表达式树中出现在最高层以下,但叶子层以上的子表达式.
函数如 ApplyCasesCountFreeQLevelMapMapIndexedPositionReplaceScan 使用层规格. 然而,注意,对于所有这些函数,默认层规格并不相同.
迭代器
{imax}
迭代 imax
{i,imax}
i 从 1 到 imax,步长为1
{i,imin,imax}
iiminimax,步长为1
{i,imin,imax,di}
iiminimax,步长为 di
{i,list}
i 采取 list 中的连续值
{i,imin,imax},{j,jmin,jmax},
iiminimax,并且对每个 i,jjminjmax,等等.
迭代器表示法.
迭代器在函数如 SumTableDoRange 中使用.
迭代参数 imin,imaxdi 不必是整数. 变量 i 被赋于一系列值,这些值从 imin 开始,以步长 di 递增,当 i 的下一个值比 imax 大时停止. 迭代参数可以是任意的符号表达式,只要 (imax-imin)/di 是一个数.
当使用一些迭代变量时,后面的迭代变量的极限可以依赖于前面的迭代变量的值.
变量 i 可以是任意符号表达式;它不必是单个字符. i 的值自动设为迭代函数的局部值. 这可以通过对迭代函数中包含 iBlock 结构进行封装来实现.
关于计算迭代函数的过程,请参见 "计算".
作用域结构
Function[{x,},body]
局部参数
lhs->rhs
lhs:>rhs
局部模式名
lhs=rhs
lhs:=rhs
局部模式名
With[{x=x0,},body]
局部常数
Module[{x,},body]
局部变量
Block[{x,},body]
全局变量的局部值
DynamicModule[{x,},body]
Dynamic 接口中的局部变量
Wolfram 语言中的作用域结构. 语法上第一组作用域变量上的函数.
作用域结构允许特定符号的名称或值是局部的.
一些作用域构建语法作用域,这意味着特定变量或模式的字母实例被合适的值替代. 当要求局部变量名时,名称形如 xxx 的符号被重命名为 xxx$. 当计算嵌套作用域结构时,在内层作用域结构中自动产生新的符号,以避免与外层作用域结构的符号冲突.
当采用一个变换规则或定义的时候,ReplaceAll/.)实际上用来代替出现在右边的模式名. 然而,当必要的时候,将产生新符号用来表示在右边出现的作用域结构的其它对象.
每次计算的时候,Module 产生形如 xxx$nnn 具有唯一名称的符号,用来替代所有在函数体中出现的局部变量.
Block 局部化全局变量的值. 即使当变量没有在函数体内明确出现时,在依赖全局变量的函数块中进行的任何计算都将使用在局部指定的值. Block 体可能也会对全局变量进行修改,但是任何修改都只持续到 Block 结束执行的时候.
在一个笔记本中,DynamicModuleDynamicModule 输出的每个实例局部化它的变量. 这意味着每个使用复制和粘贴创建的 DynamicModule 输出的每个拷贝都将使用它自己的局部变量.
表达式的顺序
表达式的正则排序自动使用属性 Orderless,并且在函数如 Sort 中符合以下规则:
数学函数
Wolfram 语言内置的数学函数如 Log[x]BesselJ[n,x] 具有大量共同的特点.
数学常数
Wolfram 语言内置的数学常数如 EPi 具有下面特性:
保护
Wolfram 语言允许用户进行赋值,来重载 Wolfram 语言内置对象的标准操作和含意.
为了尽量避免出现错误的赋值,大多数 Wolfram 语言内置对象具有属性 Protected. 如果用户想要对一个内置对象进行赋值,必须首先删除该属性. 可以调用函数 Unprotect 来实现该功能.
存在一些基本的 Wolfram 语言对象,用户绝对不可以自己对其赋值. 这些对象具有属性 Locked,以及Protected. Locked 属性防止用户对任何属性进行修改,并且也防止删除 Protected 属性.
缩写的字符串模式
函数如 StringMatchQNamesRemove 允许用户给出缩写的字符串模式(abbreviated string patterns),以及由 StringExpression 指定的完全字符串模式. 缩写的字符串模式可以包含某些元字符(metacharacters),元字符可以表示普通字符组成的序列.
*
零个或多个字符
@
除了大写字母外的,一个或多个字符
\\*
,等等.
字母 *,等等
在缩写字符串模式中使用的元字符.