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の相互作用で求めた出力のように見えるものを得ます-mode:
ことを考えると(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
ドキュメントから
ありがとう!私はちょうど '(make-symbol" foo ")'が '' foo'に '' equal 'でも 'eq'でもなく、さらに混乱していることを発見したところに達しました。 :-) – ecmanaut
@ecmanaut喜んでお手伝いします。 – michaelb958