The Selection Operation - Maple Help

Home : Support : Online Help : Programming : Operations : Sets and lists : selection

The Selection Operation

 Calling Sequence A[expr]

Parameters

 A - name, table, list, set, string, or expression sequence expr - expression

Description

 • The selection operation $\left[\right]$ can be used to select components from an aggregate object.
 • If A evaluates to an unassigned name then the selection operation yields an indexed name.
 • If A evaluates to a table then the selection operation is the standard table indexing operation.
 • If A evaluates to an hfarray the selection operation yields either a Maple float (if the number of indices matches the number of dimensions of the hfarray), or a sub-hfarray (if the number of indices is less than the number of dimensions).
 • If A evaluates to a list, set, or expression sequence, then the argument expr must evaluate to an integer, a range, a sequence of integers or NULL.
 • If A evaluates to a string, then A[expr] is equivalent to substring(A,expr).
 • If expr evaluates to an integer i, then the i^th element is returned.
 • If A evaluates to a list, set, or expression sequence, and expr evaluates to a range, then a list, set, or expression sequence of the elements specified by the range is returned.  If the list, set or sequence contains sublists or subsets, then expr can be an expression sequence, in which case the appropriate subentry will be returned.
 • If A evaluates to a table, and expr evaluates to a range, then the selection remains unevaluated.
 • Negative integers can appear in expr. In this case, elements are counted from the end of the list, set, or expression sequence. The -1^th element is the last element, the -2^th element is the second last, and so on.
 • If expr evaluates to a range of positive integers, the lower bound must be less than or equal to one more than the upper bound. Specifically, ${A}_{3..3}$ selects a single element, ${A}_{3..2}$ produces an empty selection, and ${A}_{3..1}$ is not permitted. Negative integers in a range are first converted to equivalent positive integers, then this requirement is imposed.
 • If expr evaluates to NULL, then an expression sequence of all elements is returned unless $A$ is a string, in which case ${A}_{[]}$ is returned.

Examples

 > $L:=\left[a,b,c\right]:$
 > ${L}_{1}$
 ${a}$ (1)
 > ${L}_{1..2}$
 $\left[{a}{,}{b}\right]$ (2)
 > ${L}_{-2..-1}$
 $\left[{b}{,}{c}\right]$ (3)
 > ${L}_{3..3}$
 $\left[{c}\right]$ (4)
 > ${L}_{3..2}$
 $\left[{}\right]$ (5)

The following would lead to a selection of length -1, and so is not legal:

 > ${L}_{3..1}$
 > $X:={L}_{[]}$
 ${X}{:=}{a}{,}{b}{,}{c}$ (6)
 > ${X}_{1}$
 ${a}$ (7)
 > ${X}_{1..2}$
 ${a}{,}{b}$ (8)
 > ${X}_{-2..-1}$
 ${b}{,}{c}$ (9)
 > $L:=\left[1,\left[2,3\right],\left[4,\left[5,6\right],7\right],8,9\right]$
 ${L}{:=}\left[{1}{,}\left[{2}{,}{3}\right]{,}\left[{4}{,}\left[{5}{,}{6}\right]{,}{7}\right]{,}{8}{,}{9}\right]$ (10)
 > ${L}_{3,2,1}$
 ${5}$ (11)
 > $S:=\left\{a,b,c\right\}$
 ${S}{:=}\left\{{a}{,}{b}{,}{c}\right\}$ (12)
 > ${S}_{1}$
 ${a}$ (13)
 > ${S}_{1..2}$
 $\left\{{a}{,}{b}\right\}$ (14)
 > ${S}_{-2..-1}$
 $\left\{{b}{,}{c}\right\}$ (15)
 > ${T}_{1}:=a:$${T}_{2}:=b:$${T}_{3}:=c:$
 > ${T}_{1}$
 ${a}$ (16)
 > ${T}_{1..2}$
 ${{T}}_{{1}{..}{2}}$ (17)
 > ${T}_{-2..-1}$
 ${{T}}_{{-}{2}{..}{-}{1}}$ (18)
 > $S:="a string"$
 ${S}{:=}{"a string"}$ (19)
 > ${S}_{1}$
 ${"a"}$ (20)
 > ${S}_{1..2}$
 ${"a"}$ (21)
 > ${S}_{-2..-1}$
 ${"ng"}$ (22)