# File lib/eval.rb, line 23
    def apply(function, args)
      # puts "applying #{function.inspect} with #{args.inspect}"
      args = args.to_a
      args.map!{ |arg| eval(arg) } unless function.special_form?
      eval(function).call(*args)
    end