# File bin/el4r-instance, line 360
    def let(*name_and_value_list, &block)
      (name_and_value_list.size % 2) == 0 or
        raise(ArgumentError, "Invalid count of arguments.")

      letexpr = "(let ("
      until name_and_value_list.empty?
        name = El4r.name_rb2el(name_and_value_list.shift.to_s)
        value = el4r_ruby2lisp(name_and_value_list.shift)
        letexpr << "(#{name} #{value}) "
      end
      letexpr << ") (funcall #{el4r_rubyproc_to_lambda(&block)}))"
      el4r_lisp_eval(letexpr)
    end