# EltableAggregate(Dom, Im)ΒΆ

An eltable aggregate is one which can be viewed as a function. For example, the list `[1, 7, 4]`

can applied to 0, 1, and 2 respectively will return the integers 1, 7, and 4; thus this list may be viewed as mapping 0 to 1, 1 to 7 and 2 to 4. In general, an aggregate can map members of a domain *Dom* to an image domain *Im*.

- elt: (%, Dom, Im) -> Im
`elt(u, x, y)`

applies`u`

to`x`

if`x`

is in the domain of`u`

, and returns`y`

otherwise. For example, if`u`

is a polynomial in`x`

over the rationals,`elt(u, n, 0)`

may define the coefficient of`x`

to the power`n`

, returning 0 when`n`

is out of range.

- qelt: (%, Dom) -> Im
`qelt(u, x)`

applies`u`

to`x`

without checking whether`x`

is in the domain of`u`

. If`x`

is not in the domain of`u`

a memory-access violation may occur. If a check on whether`x`

is in the domain of`u`

is required, use the function`elt`

.

- qsetelt!: (%, Dom, Im) -> Im if % has shallowlyMutable
`qsetelt!(u, x, y)`

sets the image of`x`

to be`y`

under`u`

, without checking that`x`

is in the domain of`u`

. If such a check is required use the function`setelt`

.

- setelt!: (%, Dom, Im) -> Im if % has shallowlyMutable
`setelt!(u, x, y)`

sets the image of`x`

to be`y`

under`u`

, assuming`x`

is in the domain of`u`

. Error: if`x`

is not in the domain of`u`

.

Eltable(Dom, Im)