How to print/display symbolic expressions from inside a Module without the $ dollar signs?
- To: mathgroup at smc.vnet.net
- Subject: [mg104198] How to print/display symbolic expressions from inside a Module without the $ dollar signs?
- From: "Nasser M. Abbasi" <nma at 12000.org>
- Date: Thu, 22 Oct 2009 22:34:47 -0400 (EDT)
- Reply-to: "Nasser M. Abbasi" <nma at 12000.org>
Hello; I use Print[] allot while debugging, and trace how the expression evolve etc... while it is still symbolic, before I plug in numerical values. But when I have a Module, and use Print[] on expression which involves local variables, they all print with a $ sign ofcourse. This makes it hard to read the expressions. foo[] := Module[{x, y,expr}, expr= x^2 + y; Print[" expression now is ", ToString[expr,FormatType->TraditionalForm]] ] foo[] expression now is x$589^2+y$589 A standard way to solve this is to pass the symbols themselves as in foo[x_, y_] := Module[{expr}, expr = x^2 + y; Print[" expression now is ", ToString[expr,FormatType -> TraditionalForm]] ] Remove[x, y] foo[x, y] expression now is x^2+y But the problem is that I am calling foo[] itself from inside yet another Module, and I also can't have global variables at all. So, everything is wrapped inside a Module, and every symbol much have a scope inside, nothing global. So, the only option I see (which I am going to try next, do not know if it will work) is to make a pattern which strips these $nnn from the symbols for display purposes? Or Am I missing some other simple solution to this common problem? Thanks, --Nasser