TagSetDelayed

f/:lhs:=rhs

rhs 延迟赋值给 lhs,并将赋值和符号 f 相关联.

更多信息

  • TagSetDelayed 根据需要定义上值、下值或子值.
  • f/:lhs:=rhs 中的符号 f 必须出现在 lhs,作为 lhs 的标头、标头的标头、lhs 的元素之一或其中一个元素的标头.
  • 常见例子为 f/:h[f[args]]:=rhs.
  • 可以通过输入 ?symbol 查看与一个特殊符号相关联的所有规则.
  • 如果 flhs 中多次出现,则 f/:lhs=rhs 将赋值与每次出现相关联.
  • 当它在未计算的符号形式中出现时,TagSetDelayed 被视为一个范围构造,这样必要时会重命名嵌套结构中出现的相同变量.

范例

打开所有单元关闭所有单元

基本范例  (1)

范围  (7)

左边  (4)

有延迟定义的表达式在每次调用时被计算:

用立即赋值和延迟赋值进行特定实例和普通实例中的定义:

标签可以做为左边的参数:

标签可以作为左边参数的头部:

不同类型的值  (3)

对于本身值,标签是多余的:

对于下值(downvalue),标签是多余:

用一个标签定义一个上值(upvalue):

应用  (1)

执行模运算:

属性和关系  (7)

^:= 定义上值(upvalue),它的方式和使用一个标签相同:

一个标签仅定义一个上值(upvalue),^:= 执行所有符号的定义:

进行定义时,计算立即赋值的右边:

每次调用定义时,每次计算延迟定义的右边:

有相同左边的定义会覆盖之间的定义:

Definition 输出与符号相关的定义:

Information 输出关于符号的不同信息,包括任何定义:

UpValues 返回对应定义的任何上值(upvalue)的规则列表:

=. 清除有特定左边的定义:

清除所有定义:

延迟赋值引入不影响全局变量的范围:

立即赋值不引入一个范围:

Wolfram Research (1988),TagSetDelayed,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TagSetDelayed.html.

文本

Wolfram Research (1988),TagSetDelayed,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TagSetDelayed.html.

CMS

Wolfram 语言. 1988. "TagSetDelayed." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/TagSetDelayed.html.

APA

Wolfram 语言. (1988). TagSetDelayed. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/TagSetDelayed.html 年

BibTeX

@misc{reference.wolfram_2024_tagsetdelayed, author="Wolfram Research", title="{TagSetDelayed}", year="1988", howpublished="\url{https://reference.wolfram.com/language/ref/TagSetDelayed.html}", note=[Accessed: 25-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_tagsetdelayed, organization={Wolfram Research}, title={TagSetDelayed}, year={1988}, url={https://reference.wolfram.com/language/ref/TagSetDelayed.html}, note=[Accessed: 25-November-2024 ]}