From: Dave Thomas Date: 2001-09-24T06:21:58+09:00 Subject: [ruby-talk:21611] Re: Please translate this easy snip of C++ to Ruby "Mikkel Damsgaard" writes: > > Ogle this awesome snip of C++: > > > > #define TRACE_(x) cout << #x ": " << x << endl >.... > The closest I come is this: > > def trace(expr) > print expr + "=", eval(expr,TOPLEVEL_BINDING) > puts > end I quite like: def trace(&b) f = yield puts "#{f}: #{eval(f, b).inspect}" end a = 1 f = 2 trace {"a+f"} It works in any binding, not just the top level one. Regards Dave