Re: clearing a variable with a dummy subscript
- To: mathgroup at smc.vnet.net
- Subject: [mg126587] Re: clearing a variable with a dummy subscript
- From: Christoph Lhotka <christoph.lhotka at fundp.ac.be>
- Date: Mon, 21 May 2012 05:58:17 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jp54mp$gos$1@smc.vnet.net> <201205200634.CAA04232@smc.vnet.net>
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) >
- References:
- Re: clearing a variable with a dummy subscript
- From: Peter Breitfeld <phbrf@t-online.de>
- Re: clearing a variable with a dummy subscript