Ich versuche, die gleiche Struktur ein let
Block übernimmt für die lokale Variablendefinitionen zu produzieren, sondern eine Wand am Schlagen: Da diese parse
Funktion:Was fehlt mir an Make-Symbol und Assq hier?
(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)))
ich bekommen, was wie die gesuchte Ausgabe in Lisp-Interaktion aussieht -Mode:
(setq alist (parse "foo=bar\nbaz=quux\n"))
((foo "bar") (baz "quux"))
dass Gegeben ...
(assq 'foo '((foo "bar") (baz "quux")))
(foo "bar")
... Ich würde unten dasselbe Ergebnis erwarten - was fehlt mir?
(assq 'foo alist)
nil
Während ich wäre überrascht, wenn Emacs-Versionen wichtig, ich habe diese 24,2 (9,0) auf OSX in Emacs getestet.
Vielen Dank! Ich hatte gerade den Punkt erreicht, an dem ich entdeckte, dass '(make-symbol" foo ")' weder 'equal' noch' eq' zu "foo" war und sich noch verwirrter anfühlte. :-) – ecmanaut
@ecmanaut Glücklich zu helfen. – michaelb958