Re: problem writing debugging utility function

*To*: mathgroup at smc.vnet.net*Subject*: [mg100307] Re: [mg100248] problem writing debugging utility function*From*: Ken Levasseur <klevasseur at mac.com>*Date*: Sun, 31 May 2009 06:37:24 -0400 (EDT)*References*: <200905300057.UAA23426@smc.vnet.net>

I use this function: peek = (Print[#1]; #1) & My programming style is to pipe functions: x//f1//f2//f3...//fn so sticking in a //peek is easy. Ken Levasseur http://homepage.mac.com/klevasseur/ On May 29, 2009, at 8:57 PM, dabrowsa at indiana.edu wrote: > 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? >

**References**:**problem writing debugging utility function***From:*"dabrowsa@indiana.edu" <dabrowsa@indiana.edu>