1 | initial version |

You could define a function or use a list comprehension to do this. Both rely on using string formatting to convert integers into strings for the `WeylCharacterRing`

constructor.

Here's an example using list comprehension: I add an empty string `''`

at the beginning of the list to fix indexing, because lists in Sage are always indexed starting with `0`

, so you would want `B[1]`

to be the *second* element in the list, etc.

```
sage: B = ['']+[WeylCharacterRing("B{0}".format(i)) for i in range(1,5)]
sage: B[1]
The Weyl Character Ring of Type ['B', 1] with Integer Ring coefficients
sage: B[1](1)
B1(0)
sage: B[1](1).degree()
1
sage: B[4](1,1,1,1).degree()
126
```

And here's a different way you could do this, using a lambda function:

```
sage: B = lambda i: WeylCharacterRing("B{0}".format(i))
sage: B(2)
The Weyl Character Ring of Type ['B', 2] with Integer Ring coefficients
```

You can automate lots more things by defining more functions and, if you eventually need to, a new object class!

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.