    # 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