10.3.3 计算包的其它操作

EvalEnvironment

[1] 操作getValueOf产生命名空间中绑定到name参数的值。注意该值有可能是UndefinedValue。

context EvalEnvironment::getValueOf(n: String): Value
pre: -- none
post: result = bindings->any(name = n).value

[2] 操作replace替换由nvb参数给定的名称的值。

context EvalEnvironment::replace(nvb: NameValueBinding): EvalEnvironment
pre: -- none
post: result.bindings = self.bindings->excluding(self.bindings->any(name = nvb.name))->including(nvb)

[3] 操作add增加一个由nvb参数指定的名值绑定。

context EvalEnvironment::add(nvb: NameValueBinding): EvalEnvironment
pre: -- none
post: result.bindings = self.bindings->including( nvb )

[4] 操作addAll添加nvbs参数指定的所有名值绑定。

context EvalEnvironment::add(nvbs: Collection(NameValueBinding)): EvalEnvironment
pre: -- none
post: result.bindings = self.bindings->union( nvbs )

CollectionRangeEval

[1] 操作getRange()返回一个整数序列,包括了集合区间中的所有整数。

context CollectionRangeEval::getRange(first, last: Integer): Sequence(Integer)
pre: -- none
post: result = if first = last then
        first->asSequence()
    else
        first->asSequence()->union(getRange(first + 1, last))
    endif

results matching ""

    No results matching ""