我正在尝试生成一个let
块接受的用于局部变量定义的相同结构,但我碰壁了:给定这个parse
函数:
(defun parse (string)
(mapcar (lambda (line)
(let* ((k_v (split-string line "="))
(key (make-symbol (first k_v)))
(val (second k_v)))
(list key val)))
(split-string string "\n" t)))
我在 lisp-interaction-mode 中得到了看起来像寻求的输出:
(setq alist (parse "foo=bar\nbaz=quux\n"))
((foo "bar") (baz "quux"))
鉴于……</p>
(assq 'foo '((foo "bar") (baz "quux")))
(foo "bar")
…我希望下面的结果相同——我错过了什么?
(assq 'foo alist)
nil
虽然如果 Emacs 版本很重要,我会感到惊讶,但我一直在 OSX 上的 Emacs 24.2 (9.0) 中对此进行测试。