escopo da variável de string interativa Emacs / Lisp

1

Por que isso não funciona?

(defun load-browser (app)
    (interactive "sChoose Browser? ")
    (cond ((string= app '"c")
        (setq browse-url-generic-program "chromium")
        (setq browse-url-browser-function 'browse-url-generic))
    (message "Else case Typed %s" app)
    )
)

Falha ao trabalhar no caso Else, onde a string de entrada / char não é "c".

    
por OS2 08.02.2014 / 01:26

1 resposta

1

  1. Não é necessário citar uma string: use "c" em vez de '"c" . As cordas avaliam a si mesmas.

  2. Sua segunda cláusula cond é inválida. É isso: (message "Else case Typed %s" app) . Isso testa o símbolo message como uma variável, e é sem dúvida uma variável indefinida, o que gera um erro.

O que você provavelmente está tentando conseguir é esta como sua segunda cláusula cond :

 (t (message "Else case Typed %s" app)) ; If not first clause, show message.

Leia o documento sobre cond . E sempre use o recuo correto. Veja C-h k C-M-q no modo Emacs-Lisp.

    
por 08.02.2014 / 03:47

Tags