In Emacs Lisp, how do I check if a variable is defined?
                +28 
                A: 
                
                
              you may want boundp: returns t if variable (a symbol) is not void; more precisely, if its current binding is not void. It returns nil otherwise.
  (boundp 'abracadabra)          ; Starts out void.
  => nil
  (let ((abracadabra 5))         ; Locally bind it.
    (boundp 'abracadabra))
  => t
  (boundp 'abracadabra)          ; Still globally void.
  => nil
  (setq abracadabra 5)           ; Make it globally nonvoid.
  => 5
  (boundp 'abracadabra)
  => t
                  dfa
                   2009-04-16 19:06:05
                
              sometimes it might also be useful to use INTERN-SOFT to check whether a symbol exists.
                  Rainer Joswig
                   2009-04-16 19:15:39
                
                +6 
                A: 
                
                
              
            In addition to dfa's answer you may also want to see if it's bound as a function using fboundp:
(defun baz () ) => baz (boundp 'baz) => nil (fboundp 'baz) => t
                  Jacob Gabrielson
                   2009-04-17 15:43:10
                
              
                
                A: 
                
                
              
            If you want to check a variable value from within emacs (I don't know if this applies, since you wrote "in Emacs Lisp"?):
M-: starts Eval in the mini buffer. Write in the name of the variable and press return. The mini-buffer shows the value of the variable.
If the variable is not defined, you get a debugger error.
                  Gauthier
                   2010-06-29 12:01:09