On Sep 15, 10:49 am, Joel VanderWerf <vj... / path.berkeley.edu> wrote:
> kendear wrote:
> > i wonder in Ruby, is there a line method to do something like in C
>
> def dbg(&bl)
>    s = yield
>    puts "#{s} = #{eval(s, bl).inspect}"
> end
>
> array=[0,1,2,3]
> dbg{"array[3]+1"}  # ==> array[3]+1 = 4
>
> It seems a little awkward to use both {...} and "..." around the
> expression, but the {} allows the #dbg method to capture the binding of
> the caller.

It works!  both for globals and for instance variables...
but what is this call   dbg{"n"}  using  {  } instead of  (  )
does it have a name?  and does any book talk about it?

i guess there is no way to do

dbg(array[3] + 1)  or   dbg{array[3] + 1}  without quoting it as
string huh?   C was able to do it due to the preprocessor.