5
我想產生一個let
塊接受局部變量的定義相同的結構,但我擊中牆壁:鑑於本parse
功能:我在這裏錯過了關於make-symbol和assq的內容嗎?
(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的互動追捧輸出 - 模式:
(setq alist (parse "foo=bar\nbaz=quux\n"))
((foo "bar") (baz "quux"))
鑑於...
(assq 'foo '((foo "bar") (baz "quux")))
(foo "bar")
...我期望下面有同樣的結果 - 我錯過了什麼?
(assq 'foo alist)
nil
雖然我會感到驚訝,如果Emacs的版本要緊,我一直在OSX的Emacs 24.2(9.0)測試此。
謝謝!我剛剛發現,'(make-symbol「foo」)既不是'平等的',也不是''foo'的'eq',感覺更加混亂。 :-) – ecmanaut 2013-04-28 06:08:43
@ecmanaut樂意幫忙。 – michaelb958 2013-04-28 06:11:39