From: Jacob Fugal Date: 2006-05-25T01:49:46+09:00 Subject: Re: Zed and Luis drop the bomb on Ruby's poor performance On 5/23/06, Douglas Livingstone wrote: > ((defn sum (scope (block (args a b) (return (call (lvar a) + (array > (lvar b))))))) (lasgn a (lit 3)) (lasgn b (lit 4)) (lasgn c (fcall sum > (array (lvar a) (lvar b)))) (fcall puts (array (lvar c)))) Odd, the output I get for lispifying: $ cat example.rb def sum(a, b) a + b end a = 3 b = 4 c = sum(a, b) puts c is: ((class Example Object (defn example (scope (block (args) (defn sum (scope (block (args a b) (call (lvar a) + (array (lvar b)))))) (lasgn a (lit 3)) (lasgn b (lit 4)) (lasgn c (fcall sum (array (lvar a) (lvar b)))) (fcall puts (array (lvar c)))))))) The interior (starting from "(defn sum...") is the same as you've got (minus the return statement), but I've got a lot of extra stuff wrapped around it. I've double checked the my sexp and parsetree gems are the latest (sexp-0.1, ParseTree-1.4.1). Jacob Fugal