convert/local
convert an expression to a local name
Calling Sequence
Parameters
Description
Examples
convert(e, '`local`')
e
-
expression; name, string, or symbol
An expression e (typically itself a symbol or string) can be converted to a local name using the convert( e, '`local`' ) calling sequence. The expression returned is of type symbol, and is guaranteed to be unequal to any name at the same scope in which the call is made. If the expression e is a symbol, then the symbol returned by this conversion has the same external representation as e, but is distinct from e. (See the examples.)
Note that, because it is a Maple keyword, the name local must be enclosed in left single quotes, as demonstrated by the examples below.
convert⁡a string,`local`
a string
convert⁡a,`local`
a
evalb⁡=a
false
a−
a−a
evalb⁡convert⁡a,string=convert⁡convert⁡a,`local`,string
true
p := proc() local t; evalb( t = convert( t, '`local`' ) ) end proc;
p ≔ proclocalt;evalb⁡t=convert⁡t,'local'end proc
p⁡
Even when called on the same argument within the same scope, distinct calls yield distinct names.
q := proc() local t; evalb( convert( t, '`local`' ) = convert( t, '`local`' ) ) end proc:
q⁡
This is also true for module scopes.
m := module() export e, try1, try2; local t; try1 := proc() evalb( e = convert( e, '`local`' ) ) end proc; try2 := proc() evalb( t = convert( t, '`local`' ) ) end proc; end module:
m:-try1⁡
m:-try2⁡
This facility can be used to generate a collection of distinct objects all of which look the same.
S≔seq⁡convert⁡t,`local`,i=1..10
S≔t,t,t,t,t,t,t,t,t,t
nops⁡S
10
T≔seq⁡t,i=1..10
T≔t
nops⁡T
1
See Also
convert
keyword
name
procedure
type/name
type/symbol
Download Help Document