
Re: clearing a variable with a dummy subscript
Posted:
May 21, 2012 5:59 AM


Hello,
a workaround could be to delete just the entries of DownValues which contain the symbol u.
To demonstrate I add to your example
Subscript[u, k_] := k; Subscript[u, 2] 2
another one of similar form:
Subscript[v, k_] := k; Subscript[v, 2] 2
Here are the values stored in the down values list of subscript:
DownValues[Subscript]
{HoldPattern[Subscript[v, k_]] :> k, HoldPattern[Subscript[u, k_]] :> k}
To delete definitions made just to u use something like
DownValues[Subscript] = Select[DownValues[Subscript], FreeQ[#, u, \[Infinity]] &] {HoldPattern[Subscript[v, k_]] :> k}
Now the definition for u_k is deleted
Subscript[u, 2] Subscript[u, 2]
while the definition for v_k is still present
Subscript[v, 2] 2
To this end you could define something like:
myClear[x_Symbol] := Block[{}, DownValues[Subscript] = Select[DownValues[Subscript], FreeQ[#, x, \[Infinity]] &]];
which works as expected:
myClear[v];Subscript[v,2] Subscript[v,2]
Hope that helps,
Christoph
On 05/20/2012 08:34 AM, Peter Breitfeld wrote: > Andre Hautot wrote: > >> Hi ! >> Here is something very simple I don't understand : >> >> f[x_] := x; f[2] (*A function*) >> 2 >> >> Clear[f]; f[2] (*The same perfectly cleared as expected*) >> f[2] >> >> >> Subscript[u, k_] := k; Subscript[u, 2] (*u with subscript k_ >> entered via the palette*) >> 2 >> >> Clear[u]; Subscript[u, 2] (*I found no way to clear u; a >> suggestion ?) >> 2 >> >> Thanks in advance, >> >> ahautot >> >> > The values of supcripted Variables are not associated with u, but to > Subscript: > > Subscript[u,2]=123 > > DownValues[u] returns: {} > > DownValues[Subscript] returns: {HoldPattern[u_2]:>123} > > So to Clear, you must call: > > Clear[Subscript] > > (but then *all* subscripted variables are cleared) >

