Sto cercando di produrre la stessa struttura di un blocco let
accetta per le definizioni locali variabili ma sto colpire un muro: data questa funzione parse
:Cosa mi manca di make-symbol e assq qui?
(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)))
ottengo quello sembra come l'uscita ricercato in Lisp-interazione -mode:
(setq alist (parse "foo=bar\nbaz=quux\n"))
((foo "bar") (baz "quux"))
Dato che ...
(assq 'foo '((foo "bar") (baz "quux")))
(foo "bar")
... Mi aspetto lo stesso risultato qui sotto - cosa mi manca?
(assq 'foo alist)
nil
Mentre io sarei sorpreso se le versioni di Emacs importava, ho provato questo in Emacs 24.2 (9.0) su OSX.
Grazie! Avevo appena raggiunto il punto di scoprire che '(make-symbol" foo ")' non era né 'uguale' né' eq' a ''foo', e si sentiva ancora più confuso. :-) – ecmanaut
@ecmanaut Felice di aiutare. – michaelb958