Set
lhs=rhs
计算 rhs 并把结果赋给 lhs. lhs 将总是被 rhs 替换.
{l1,l2,…}={r1,r2,…}
计算 ri,并将结果赋给对应的 li.
更多信息
- lhs 可以是任何表达式,包括一个模式.
- f[x_]=x^2 是一个模式的典型赋值. 注意,_ 出现在左边,而不是右边.
- 形如 f[args]=rhs 的赋值建立与符号 f 相联系的变换法则上.
- 与一个特定符号相联系的不同规则通常按给出的顺序放置. 如果给出的一个新规则确实比存在的规则更具体,它当然放在它们之前. 这些规则在被使用时将按顺序被检测. »
- 具有相等 lhs 的新赋值将屏蔽旧的赋值. »
- 您可以用 ?f 或 Definition[f] 查看与符号 f 相关的所有赋值.
- 如果要对具有像 Flat 和 Orderless 属性的函数赋值,你必须在赋值之前确保要设置这些属性.
- Set 具有属性 HoldFirst.
- 如果 lhs 具有 f[args] 形式,则计算 args. »
- 对某些函数赋予 s[f[args]] 时,该赋值将自动与 f 相联系,而不是 s. 这些函数包括:Attributes、Default、Format、MessageName、Messages、N 和 Options. »
- 当它出现在一个未计算的符号形式中时,Set 被视为一个范围结构,以使得嵌套出现的变量在必要时被重命名. »
- lhs=rhs 返回 rhs,即使因为某些原因该指定的赋值不能执行.
- 某些类似 $RecursionLimit 的全局变量只能被赋予特定的范围或值的类型.
背景
- Set 是一个函数,对表达式求值并将结果作为变量的值. 表达式 通常用简化语法表示成 的形式. 在 Set 被求值后,当 lhs 出现时会被替换成 rhs. 根据 lhs 的形式,结果会被存储为与其关联的 OwnValues、DownValues 或特殊的数据结构.
- Set 通常在左侧 lhs 包含模式,用于被赋值为右侧 rhs 指定的转换后的值,例如,. 会对 rhs 立刻进行求值,这样在需要 rhs 只在应用规则后才被求值的场合,应该用 SetDelayed(简写为 :=)代替.
- 查看给定符号关联的赋值可以用 Definition[f]. 可以用 Unset 把单独的赋值从符号中移除;Clear 和 ClearAll 可以一次性移除全部的定义.
范例
打开所有单元关闭所有单元范围 (15)
左侧: (7)
不同类型的值: (8)
推广和延伸 (5)
应用 (6)
属性和关系 (9)
Module 引入新的符号,这与全局符号不同:
Definition 输出与符号相关的定义:
Information 输出关于符号的变量信息,包括任何定义:
OwnValues 返回对应定义的任何下值 (downvalue) 的规则列表:
用 Unset (=.) 清除特定左边的定义:
可能存在的问题 (4)
巧妙范例 (1)
计算两个数的算术-几何均值 [更多信息]:
Wolfram Research (1988),Set,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Set.html.
文本
Wolfram Research (1988),Set,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Set.html.
CMS
Wolfram 语言. 1988. "Set." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Set.html.
APA
Wolfram 语言. (1988). Set. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Set.html 年