elisp:如果符号有值返回,否则返回nil

kin*_*ero 3 lisp emacs elisp

如果我使用这个我得到一个错误,因为c从未设置.

(if (symbol-value c)
    c
  nil)
Run Code Online (Sandbox Code Playgroud)

我的问题是,我有一个列表包含symbols其中一些是set对一些价值,我想建立与他们的价值观和列表nil小号

(setq a "x")
(setq b "y")
(setq l '(a b c))
Run Code Online (Sandbox Code Playgroud)

所以从l我想要构建一个列表("x" "y" nil).我认为这应该是一件简单的事情

phi*_*ils 11

(setq a "x")
(setq b "y")
(setq l (mapcar (lambda (x)
                  (and (boundp x) (symbol-value x)))
                '(a b c)))
Run Code Online (Sandbox Code Playgroud)

  • FWIW,`apropos-documentation`搜索`symbol`确实包含`boundp`,但它在大海捞针中有点针.elisp手册更容易一些 - 请参阅"Void Variables:缺少值的符号".在"变量"下. (2认同)