SetDelayed

lhs:=rhs

rhs 延时赋给 lhs. rhs 保留未计算的形式. 当 lhs 出现时,用 rhs 对其进行替换,并且每次重新计算.

更多信息

  • SetDelayed 有属性 HoldAll,而不是 HoldFirst 属性.
  • 您可以进行诸如 lhs:=rhs/;test 的赋值,这里 test 给出使用每个变换规则的条件. 您可进行具有相同 lhs 而有不同 test 形式的赋值.
  • 如果指定的赋值可以执行,lhs:=rhs 返回 Null; 否则返回 $Failed.

范例

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

基本范例  (1)

范围  (9)

左侧  (4)

SetDelayed 定义的变量在每次使用时计算:

设置普通例子和特殊例子的立即赋值和延时赋值:

设置条件定义:

通过几个条件例子定义一个函数:

不同类型的值  (5)

本值:

下值(downvalue):

次值: 

上值(upvalue): 

数值:

应用  (3)

定义一个用牛顿方法计算平方根的过程:

需要时执行计算并将结果放入缓存中:

未计算表达式的定义可以执行名称的调用:

不修改全局变量:

属性和关系  (9)

当有定义时,计算立即定义的右边:

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

定义左边的参数在定义前计算:

有相同左边的定义,较早的被覆盖:

在嵌套范围内模式变量尽可能的重命名:

延时定义产生一个不影响全局变量的范围:

立即赋值并不引入范围:

用一个规则执行特定表达式的转换:

用定义执行关于 g 的所有表达式的转换:

更多的特殊定义放在普通定义之前:

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

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

DownValues 返回对应任何定义 downvalue 的规则列表:

Unset (=.) 清除特定左边的定义:

清除任何定义,但不包括属性:

ClearAll 也清除属性:

可能存在的问题  (4)

若忽略 _,这仅给出逐字的转换而不是一个函数:

用延迟定义可能会得不到预计的结果:

具体的定义和它的行为:

Evaluate 执行右边的计算:

或用 Set 执行右边的计算:

迭代限制的定义:

通过提供基本的例子,迭代终止:

循环限制的定义:

通过提供基本的例子,循环终止:

巧妙范例  (1)

斐波那契序列的动态程序:

在计算过程中增加新的定义:

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

文本

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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