def evaluate
         arg = @args.collect {|i| i.evaluate }
         out = []
         arg.each { |i| o.push i }
         o.push @func
         p o
      end
def evaluate
         arg = @args.collect {|i| i.evaluate }
         out = []
         arg.each { |i| o.push i }
         o.push @func
         p o
      end
:nodoc: