Re: How to localize a symbol when using Manipulate?
- To: mathgroup at smc.vnet.net
 - Subject: [mg112622] Re: How to localize a symbol when using Manipulate?
 - From: Bill Rowe <readnews at sbcglobal.net>
 - Date: Thu, 23 Sep 2010 04:22:41 -0400 (EDT)
 
On 9/22/10 at 1:58 AM, nma at 12000.org (Nasser M. Abbasi) wrote:
>I want to make a call to a lower level function which makes an
>expression (say build a polynomial in s) and returns it back to be
>displayed.
>I want this function to use a symbol, say s, to build the
>polynomial.
>The problem is how to localize the symbol itself so it is not
>global.
>Since one dose not declare things in Mathematica, (sometime I wish I
>could) I can't declare the s to be a symbol, but must just use it.
>Here is a simple example to show the problem:
>If one does not pass a symbol for a lower level function during the
>call to be used in constructing an expression, then the expression
>will have $nnnn added to it.
>Manipulate[process[n], {n, 2, 10},
>Initialization :>
>(process[n_] := Module[{s}, s^n])
>]
>If you run the above, the result shown will be s$nnn^2  where nnn is
>some number.
The simplest way I know to not get the s$nnn form created by
using Module is to use Block instead. That is
Manipulate[process[n], {n, 2, 10},
Initialization :>
     (process[n_] := Block[{s}, s^n])
]
will have display power of s rather than a power of s$nnn