problem writing debugging utility function
- To: mathgroup at smc.vnet.net
- Subject: [mg100248] problem writing debugging utility function
- From: "dabrowsa at indiana.edu" <dabrowsa at indiana.edu>
- Date: Fri, 29 May 2009 20:57:49 -0400 (EDT)
This matter is pretty unimportant, but perhaps of interest in laying out a persistent source confusion for me with Mathematica: evaluation control. I'm skeptical of the built-in debugger because it seems to crash the kernel often, so I do most of my debugging by inserting print statements like Print["variableOne = ",variableOne]. Being extraordinarily lazy I soon thought it might be nice to have a little function, say dbgv, which takes a variable or name of a variable as an argument, and produces the same result as the print statement above. At first I assumed this would be easy, since almost every programming problem turns out to be pretty easy with Mathematica. But after an hour or so I began to wonder whether it would be possible at all. I did eventually find a solution, a function dbgv such that dbgv[variableOne] produces exactly the effect of the print statement, but it's really ugly. I'll post it later. Granted this is not an important problem since it's not too much trouble to just type in the whole print statement. But it's worth noting that this would trivial to solve with a Lisp macro, and despite the fantastic expressibility of Mathematica it doesn't seem to have a good replacement for macros. The closest equivalents are $Pre(Read), which I used in my solution, but they're not nearly as nice to work with. Can anyone think of an elegant solution?