11.9.2 Set

source类型是Set(T)的标准迭代器表达式是:

select

expr为真的set子集。

source->select(iterator | body) =
                source->iterate(iterator; result : Set(T) = Set{} |
                    if body then result->including(iterator)
                    else result
                    endif)

select最多只有一个迭代器变量。

reject

source集合中body计算为假的元素组成的集合。

source->reject(iterator | body) = source->select(iterator | not body)

reject最多只能有一个迭代器变量。

collectNested

source集合中的每个成员应用body所产生的结果元素的Bag。

source->collectNested(iterator | body) =
        source->iterate(iterator; result : Bag(body.type) = Bag{} | result->including(body ) )

collectNested最多只能有一个迭代器变量。

sortedBy

产生一个包含source集合所有元素的OrderedSet。元素中对于body计算结果最小的排在第一位,依此类推。body表达式的类型必须定义了 < 操作。< 操作必须返回一个布尔且必须是可传递的(即,如果 a < b 且 b < c,那么有 a < c)。

source->sortedBy(iterator | body) = iterate( iterator ; result : OrderedSet(T) : OrderedSet {} |
        if result->isEmpty() then
            result.append(iterator)
        else
            let position : Integer = result->indexOf (
                    result->select (item | body (item) > body (iterator)) ->first() )
                in
                    result.insertAt(position, iterator)
        endif

sortedBy最多只能有一个迭代器变量。

results matching ""

    No results matching ""