Set


计算 rhs 并把结果赋给 lhs. lhs 将总是被 rhs 替换.


计算 ,并将结果赋给对应的 .

更多信息更多信息

  • lhs 可以是任何表达式,包括一个模式.
  • 是一个模式的典型赋值. 注意, 出现在左边,而不是右边.
  • 形如 的赋值建立与符号 f 相联系的变换法则上.
  • 与一个特定符号相联系的不同规则通常按给出的顺序放置. 如果给出的一个新规则确实比存在的规则更具体,它当然放在它们之前. 这些规则在被使用时将按顺序被检测. »
  • 具有相等 lhs 的新赋值将屏蔽旧的赋值. »
  • 您可以用 ?fDefinition[f] 查看与符号 f 相关的所有赋值.
  • 如果要对具有像 FlatOrderless 属性的函数赋值,你必须在赋值之前确保要设置这些属性.
  • Set 具有属性 HoldFirst.
  • 如果 lhs 具有 形式,则计算 args. »
  • 对某些函数赋予 时,该赋值将自动与 f 相联系,而不是 s. 这些函数包括:AttributesDefaultFormatMessageNameMessagesNOptions. »
  • 当它出现在一个未计算的符号形式中时,Set 被视为一个范围结构,以使得嵌套出现的变量在必要时被重命名. »
  • 返回 rhs,即使因为某些原因该指定的赋值不能执行.
  • 某些类似 $RecursionLimit 的全局变量只能被赋予特定的范围或值的类型.

背景
背景

  • Set 是一个函数,对表达式求值并将结果作为变量的值. 表达式 通常用简化语法表示成 的形式. 在 Set 被求值后,当 lhs 出现时会被替换成 rhs. 根据 lhs 的形式,结果会被存储为与其关联的 OwnValuesDownValues 或特殊的数据结构.
  • Set 通常在左侧 lhs 包含模式,用于被赋值为右侧 rhs 指定的转换后的值,例如,. 会对 rhs 立刻进行求值,这样在需要 rhs 只在应用规则后才被求值的场合,应该用 SetDelayed(简写为 )代替.
  • 查看给定符号关联的赋值可以用 Definition[f]. 可以用 Unset 把单独的赋值从符号中移除;ClearClearAll 可以一次性移除全部的定义.
1988年引入
(1.0)
Translate this page: