关于动态函数

将树中的整个分支视为一个单一函数(允许您提供输入参数)通常很有用。这可以通过动态函数(Dynamic Functions)来实现。

假设您想计算当销售额增加 1000 时利润会增加多少。

如果利润是销售额的函数,您只需添加一个节点,例如:

Difference:=Profit(4000)-Profit(3000)

然而,利润是一个常量而非函数,因此此定义不起作用。不过,如果您将利润作为动态函数引用,仍然可以执行此计算,如下所示:

Difference:=Profit(Sales:=4000)-Profit(Sales:=3000)

当 DScript 对公式求值时:

Profit(Sales:=4000)

它意识到利润不是函数,因此假定您想将从利润开始的整个分支视为动态函数。为此,DScript 首先对圆括号内的表达式求值;然后运行利润分支;最后,移除在对圆括号表达式求值时创建的所有定义。

圆括号内的表达式可以执行任何操作,包括完全重新定义分支的关键部分。例如,以下表达式不仅将销售额设为新值,还重新定义了节点 Variable:

Profit(Sales:=4000,Variable:=Sales*50%)

在使用动态函数时,您是在要求 DScript 使用一组临时更改来对分支求值。这是将场景测试嵌入应用程序的好方法。