IndexedAggregate(Index, Entry)

aggcat.spad line 826 [edit on github]

An indexed aggregate is a many-to-one mapping of indices to entries. For example, a one-dimensional-array is an indexed aggregate where the index is an integer. Also, a table is an indexed aggregate where the indices and entries may have any type.

# : % -> NonNegativeInteger if % has finiteAggregate
from Aggregate
= : (%, %) -> Boolean if Entry has BasicType and % has finiteAggregate or Entry has SetCategory
from BasicType
any? : (Mapping(Boolean, Entry), %) -> Boolean if % has finiteAggregate
from HomogeneousAggregate(Entry)
coerce : % -> OutputForm if Entry has CoercibleTo(OutputForm)
from CoercibleTo(OutputForm)
copy : % -> %
from Aggregate
count : (Entry, %) -> NonNegativeInteger if Entry has BasicType and % has finiteAggregate
from HomogeneousAggregate(Entry)
count : (Mapping(Boolean, Entry), %) -> NonNegativeInteger if % has finiteAggregate
from HomogeneousAggregate(Entry)
elt : (%, Index) -> Entry
from Eltable(Index, Entry)
elt : (%, Index, Entry) -> Entry
from EltableAggregate(Index, Entry)
empty : () -> %
from Aggregate
empty? : % -> Boolean
from Aggregate
entries : % -> List(Entry)

entries(u) returns a list of all the entries of aggregate u in no assumed order.

entry? : (Entry, %) -> Boolean if Entry has BasicType and % has finiteAggregate

entry?(x, u) tests if x equals u . i for some index i.

eq? : (%, %) -> Boolean
from Aggregate
eval : (%, Entry, Entry) -> % if Entry has SetCategory and Entry has Evalable(Entry)
from InnerEvalable(Entry, Entry)
eval : (%, Equation(Entry)) -> % if Entry has SetCategory and Entry has Evalable(Entry)
from Evalable(Entry)
eval : (%, List(Entry), List(Entry)) -> % if Entry has SetCategory and Entry has Evalable(Entry)
from InnerEvalable(Entry, Entry)
eval : (%, List(Equation(Entry))) -> % if Entry has SetCategory and Entry has Evalable(Entry)
from Evalable(Entry)
every? : (Mapping(Boolean, Entry), %) -> Boolean if % has finiteAggregate
from HomogeneousAggregate(Entry)
fill! : (%, Entry) -> % if % has shallowlyMutable

fill!(u, x) replaces each entry in aggregate u by x. The modified u is returned as value.

first : % -> Entry if Index has OrderedSet

first(u) returns the first element x of u. Note: for collections, first([x, y, ..., z]) = x. Error: if u is empty.

index? : (Index, %) -> Boolean

index?(i, u) tests if i is an index of aggregate u.

indices : % -> List(Index)

indices(u) returns a list of indices of aggregate u in no particular order.

latex : % -> String if Entry has SetCategory
from SetCategory
less? : (%, NonNegativeInteger) -> Boolean
from Aggregate
map : (Mapping(Entry, Entry), %) -> %
from HomogeneousAggregate(Entry)
map! : (Mapping(Entry, Entry), %) -> % if % has shallowlyMutable
from HomogeneousAggregate(Entry)
max : % -> Entry if Entry has OrderedSet and % has finiteAggregate
from HomogeneousAggregate(Entry)
max : (Mapping(Boolean, Entry, Entry), %) -> Entry if % has finiteAggregate
from HomogeneousAggregate(Entry)
maxIndex : % -> Index if Index has OrderedSet

maxIndex(u) returns the maximum index i of aggregate u. Note: in general, maxIndex(u) = reduce(max, indices u); for List, maxIndex(u) = #u.

member? : (Entry, %) -> Boolean if Entry has BasicType and % has finiteAggregate
from HomogeneousAggregate(Entry)
members : % -> List(Entry) if % has finiteAggregate
from HomogeneousAggregate(Entry)
min : % -> Entry if Entry has OrderedSet and % has finiteAggregate
from HomogeneousAggregate(Entry)
minIndex : % -> Index if Index has OrderedSet

minIndex(u) returns the minimum index i of aggregate u. Note: in general, minIndex(a) = reduce(min, indices a); for List, minIndex(a) = 1.

more? : (%, NonNegativeInteger) -> Boolean
from Aggregate
parts : % -> List(Entry) if % has finiteAggregate
from HomogeneousAggregate(Entry)
qelt : (%, Index) -> Entry
from EltableAggregate(Index, Entry)
qsetelt! : (%, Index, Entry) -> Entry if % has shallowlyMutable
from EltableAggregate(Index, Entry)
sample : () -> %
from Aggregate
setelt! : (%, Index, Entry) -> Entry if % has shallowlyMutable
from EltableAggregate(Index, Entry)
size? : (%, NonNegativeInteger) -> Boolean
from Aggregate
swap! : (%, Index, Index) -> Void if % has shallowlyMutable

swap!(u, i, j) interchanges elements i and j of aggregate u. No meaningful value is returned.

~= : (%, %) -> Boolean if Entry has BasicType and % has finiteAggregate or Entry has SetCategory
from BasicType

EltableAggregate(Index, Entry)

Evalable(Entry)

Eltable(Index, Entry)

BasicType

InnerEvalable(Entry, Entry)

SetCategory

CoercibleTo(OutputForm)

Aggregate

HomogeneousAggregate(Entry)