tablereverse - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


tablereverse

reverse table

 

Calling Sequence

Parameters

Options

Summary

Description

Examples

Compatibility

Calling Sequence

tablereverse(t, c, opts)

Parameters

t

-

table

c

-

(optional) combiner function

opts

-

zero or or more options as specified below

Options

• 

distinctentries = truefalse

  

Specifies that the entries in the input table t are known to be distinct, i.e. numelems(t)=numelems([entries(t)]). This enables more efficient construction of the output table. The default is false.

• 

nolist = truefalse

  

Specifying 'nolist' or 'nolist'=true causes each entry in the output table s to be a simple collection of indices of t, without wrapping each index in a list. This is useful for tables where every index is a single object. When 'nolist' is used on a table with expression sequence indices or entries, the pairings may be difficult to deduce in the result.

• 

sort = truefalse

  

Specifying 'sort' or 'sort'=true indicates that each entry of the output table s should be sorted. This is only useful when a non-default combiner function c has been specified which produces ordered containers (for example a list or Array). The default value is false, which means that if the container type is ordered, the order chosen is not specified.

Summary

• 

Returns a table which is the result of reversing the table t while combining keys mapping to the same value with combiner function f.

Description

• 

The tablereverse function takes a table t and returns a table s which is a reversal of t, in the sense that the indices of s are the entries of t and the entries of s are a collection of the indices of t.

• 

By default, an entry s[u] in the output table s consists of a set of lists. Each element v in s[u] is a list whose contents correspond to an entry of the input table t pointing at u, so the property t[op(v)]=u holds.

• 

The optional argument c allows the specification of a combiner function c which accepts an expression sequence of inputs representing keys in t which map to the same value and returns some customized value.

• 

The default combiner function is simply the set constructor `{}` which collects all its arguments together in a set.

Examples

Here we reverse a table mapping various foods to food categories.

Ttableapple=fruit,orange=fruit,zucchini=vegetable,milk=dairy

Ttableorange=fruit,milk=dairy,apple=fruit,zucchini=vegetable

(1)

tablereverseT

tablevegetable=zucchini,fruit=apple,orange,dairy=milk

(2)

Notice that in the above output all the foods in the entries of the output table appear in lists. This is to preserve the keys of the original table T in case any of its keys were expression sequences. Because this is not the case in our example, we can use nolist to simplify the output.

tablereverseT,nolist

tablevegetable=zucchini,fruit=apple,orange,dairy=milk

(3)

Instead of the default combiner function, use a list constructor and sort the resulting entries.

tablereverseT,`[]`,nolist,sort

tablevegetable=zucchini,fruit=apple,orange,dairy=milk

(4)

This table shows what ABO blood type a person has given their genetic profile.

BloodPhenotypestablesymmetric,`$`A,2=A,`$`B,2=B,`$`O,2=O,A,B=AB,A,O=A,B,O=B

BloodPhenotypestablesymmetric,A,B=AB,B,B=B,O,O=O,B,O=B,A,O=A,A,A=A

(5)

BloodGenotypestablereverseBloodPhenotypes

BloodGenotypestableB=B,B,B,O,O,B,AB=A,B,B,A,A=A,A,A,O,O,A,O=O,O

(6)

We can see by this result that there are multiple genetic combinations that result in type A, but only one which results in type O.

BloodGenotypesA

A,A,A,O,O,A

(7)

BloodGenotypesO

O,O

(8)

This table maps countries to their capital cities. Because the entries here are distinct, that is, no city appears as the capital of two countries, we can use the distinctentries option when calling tablereverse.

CapitalstableCroatia=Zagreb,Jordan=Amman,Mali=Bamako,Uruguay=Montevideo,Cambodia=Phnom Penh,Cape Verde=Praia,Sierra Leone=Freetown

CapitalstableMali=Bamako,Sierra Leone=Freetown,Jordan=Amman,Croatia=Zagreb,Cambodia=Phnom Penh,Uruguay=Montevideo,Cape Verde=Praia

(9)

tablereverseCapitals,distinctentries,nolist

tableFreetown=Sierra Leone,Bamako=Mali,Montevideo=Uruguay,Amman=Jordan,Zagreb=Croatia,Phnom Penh=Cambodia,Praia=Cape Verde

(10)

The fact that entries are distinct in the original table means that with the default combiner function, every entry in the output will be a singleton set. We can avoid this using the identity function as combiner.

tablereverseCapitals,tt,distinctentries,nolist

tableFreetown=Sierra Leone,Bamako=Mali,Montevideo=Uruguay,Amman=Jordan,Zagreb=Croatia,Phnom Penh=Cambodia,Praia=Cape Verde

(11)

Compatibility

• 

The tablereverse command was introduced in Maple 2019.

• 

For more information on Maple 2019 changes, see Updates in Maple 2019.

• 

The tablereverse command was updated in Maple 2022.

• 

The nolist option was introduced in Maple 2022.

• 

For more information on Maple 2022 changes, see Updates in Maple 2022.

See Also

entries

indices

table

tablemerge