|
4.1 defObjects may be defined without a specific type: they get their
type from the first assignment to them.
E.g., Note: Unlike other assignments a ring as an untyped object
is not a copy but another reference to the same (possibly unnamed) ring.
This means that entries in one of these rings appear also in the other ones.
The following defines a ring ring r=32003,(x,y,z),dp; poly f = x; def s=basering; setring s; nameof(basering); → s listvar(); → // s [0] *ring → // f [0] poly → // r [0] ring → // LIB [0] string standard.lib poly g = y; kill f; listvar(r); → // r [0] ring → // g [0] poly ring t=32003,(u,w),dp; def rt=r+t; rt; → // characteristic : 32003 → // number of vars : 5 → // block 1 : ordering dp → // : names x y z → // block 2 : ordering dp → // : names u w → // block 3 : ordering C This reference to a ring with def is useful if the basering
is not local to the procedure (so it cannot be accessed by its name) but one
needs a name for it (e.g., for a use with
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |