Re: Scoping and named patterns
- To: mathgroup at smc.vnet.net
- Subject: [mg18153] Re: Scoping and named patterns
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Sat, 19 Jun 1999 23:54:23 -0400
- Organization: Universitaet Leipzig
- References: <7kcjrn$lql@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
Rule[] evaluate it's arguments. RuleDelayed[] wirks as expected:
In[9]:=
n = 2; x = 3;
f[a^b] /. f[x : _^n_] :> p[x, n]//InputForm
Out[9]//InputForm=
p[a^b, b]
Hope that helps
Jens
Dr Dan wrote:
>
> I am having trouble with name conflicts between global symbols and
> named patterns.
... SNIP SNAPP ...
> But if the symbols used as pattern names have values:
>
> In[3]:= n = 2; x = 3;
> f[a^b] /. f[x : _^n_] -> p[x, n]
> Out[3]= p[3, 2]
>
> My usual favorite scoping structure, Module, doesn't help:
>
> In[4]:= Module[{x, n}, f[a^b] /. f[x : _^n_] -> p[x, n]]
> Out[4]= p[3, 2]
>
> This looks like a bug to me. If I use a symbol in a local context I
> expect the local symbol and never the global.
SNIPP SNAPP
> Any comments, or a better workaround than Block?
>
> Sent via Deja.com http://www.deja.com/
> Share what you know. Learn what you don't.