From: Piergiuliano Bossi Date: 2004-02-10T03:49:57+09:00 Subject: evaluate and print an expression I hope that what I'm asking doesn't sound too weird, but I'm trying to understand if in ruby is possible to print and evaluate an expression at the same time. I know for example that I can do like this: irb(main):001:0> expr = "1+2==3" => "1+2==3" irb(main):002:0> puts expr + ' ==> ' + (eval expr).to_s 1+2==3 ==> true => nil What I don't like is to specify the expression as a string. I'd rather prefer to manage code directly, but I don't know exactly how to print it and evaluate it at the same time. Ideally, I'd like to change the following code in order to print block body: irb(main):012:0> def evaluate(&code) irb(main):013:1> p code irb(main):014:1> code.call irb(main):015:1> end => nil irb(main):016:0> evaluate { 1+2==3 } # => true Do you see what I mean? Instead of having: # I'd like to get: { 1+2==3 } or something like that. I know that in lisp this can be easily done due to its nature (that is, code is data and data is code), but in ruby? Thanks for your help! Ciao, Giuliano -- If you want to send me an email in the address you have to write 'p', then a dot, followed by 'bossi' at 'quinary', another dot and 'com' at last