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

时间:2012-01-20 00:23:28

标签: emacs lisp elisp

如果我使用它,我会收到错误,因为永远不会设置c

(if (symbol-value c)
    c
  nil)

我的问题是我有一个包含symbols的列表,其中一些是set到某个值,我想构建一个包含其值和nil s的列表

(setq a "x")
(setq b "y")
(setq l '(a b c))

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

1 个答案:

答案 0 :(得分:11)

(setq a "x")
(setq b "y")
(setq l (mapcar (lambda (x)
                  (and (boundp x) (symbol-value x)))
                '(a b c)))